{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Design of a Symmetric Broadband Splitter\n",
    "\n",
    "Many devices of interest can leverage some form of simulation symmetry to reduce the computational cost and storage requirements. The adjoint solver and its corresponding TO filter toolbox are built to work with these symmetries.\n",
    "\n",
    "To demonstrate this, we look at a symmetric, broadband splitter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Using MPI version 3.1, 1 processes\n"
     ]
    }
   ],
   "source": [
    "import meep as mp\n",
    "import meep.adjoint as mpa\n",
    "import autograd.numpy as npa\n",
    "from autograd import tensor_jacobian_product, grad\n",
    "import numpy as np\n",
    "from matplotlib import pyplot as plt\n",
    "from matplotlib.patches import Circle\n",
    "import nlopt\n",
    "seed = 240\n",
    "np.random.seed(seed)\n",
    "mp.quiet(quietval=True)\n",
    "Si = mp.Medium(index=3.4)\n",
    "SiO2 = mp.Medium(index=1.44)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As before, we'll define our geometry, filtering, and wavelength parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "waveguide_width = 0.5\n",
    "design_region_width = 2.5\n",
    "design_region_height = 2.5\n",
    "arm_separation = 1.0\n",
    "waveguide_length = 0.5\n",
    "pml_size = 1.0\n",
    "resolution = 20\n",
    "\n",
    "minimum_length = 0.09\n",
    "eta_e = 0.55\n",
    "filter_radius = mpa.get_conic_radius_from_eta_e(minimum_length,eta_e)\n",
    "eta_i = 0.5\n",
    "eta_d = 1-eta_e\n",
    "design_region_resolution = int(5*resolution)\n",
    "\n",
    "frequencies = 1/np.linspace(1.5,1.6,10)\n",
    "#print(1/frequencies)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll also define our simulation domain and set up a broadband source."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Sx = 2*pml_size + 2*waveguide_length + design_region_width\n",
    "Sy = 2*pml_size + design_region_height + 0.5\n",
    "cell_size = mp.Vector3(Sx,Sy)\n",
    "\n",
    "pml_layers = [mp.PML(pml_size)]\n",
    "\n",
    "fcen = 1/1.56\n",
    "width = 0.2\n",
    "fwidth = width * fcen\n",
    "source_center  = [-Sx/2 + pml_size + waveguide_length/3,0,0]\n",
    "source_size    = mp.Vector3(0,2,0)\n",
    "kpoint = mp.Vector3(1,0,0)\n",
    "src = mp.GaussianSource(frequency=fcen,fwidth=fwidth)\n",
    "source = [mp.EigenModeSource(src,\n",
    "                    eig_band = 1,\n",
    "                    direction=mp.NO_DIRECTION,\n",
    "                    eig_kpoint=kpoint,\n",
    "                    size = source_size,\n",
    "                    center=source_center)]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we'll define our design region. This time, however, we'll include a symmetry across the Y plane (normal direction of the symmetry plane points in the Y direction)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "Nx = int(design_region_resolution*design_region_width)\n",
    "Ny = int(design_region_resolution*design_region_height)\n",
    "\n",
    "design_variables = mp.MaterialGrid(mp.Vector3(Nx,Ny),SiO2,Si,grid_type='U_MEAN')\n",
    "design_region = mpa.DesignRegion(design_variables,volume=mp.Volume(center=mp.Vector3(), size=mp.Vector3(design_region_width, design_region_height, 0)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll define a filtering and interpolation function. We need to include the symmetry requirements in the filter too."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def mapping(x,eta,beta):   \n",
    "    # filter\n",
    "    filtered_field = mpa.conic_filter(x,filter_radius,design_region_width,design_region_height,design_region_resolution)\n",
    "    \n",
    "    # projection\n",
    "    projected_field = mpa.tanh_projection(filtered_field,beta,eta)\n",
    "    \n",
    "    # interpolate to actual materials\n",
    "    return projected_field.flatten()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We also need to define a bitmask that describes the boundary conditions of the waveguide and cladding layers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define spatial arrays used to generate bit masks\n",
    "x_g = np.linspace(-design_region_width/2,design_region_width/2,Nx)\n",
    "y_g = np.linspace(-design_region_height/2,design_region_height/2,Ny)\n",
    "X_g, Y_g = np.meshgrid(x_g,y_g,sparse=True,indexing='ij')\n",
    "\n",
    "# Define the core mask\n",
    "left_wg_mask = (X_g == -design_region_width/2) & (np.abs(Y_g) <= waveguide_width/2)\n",
    "top_right_wg_mask = (X_g == design_region_width/2) & (np.abs(Y_g + arm_separation/2) <= waveguide_width/2)\n",
    "bottom_right_wg_mask = (X_g == design_region_width/2) & (np.abs(Y_g - arm_separation/2) <= waveguide_width/2)\n",
    "Si_mask = left_wg_mask | top_right_wg_mask | bottom_right_wg_mask\n",
    "\n",
    "# Define the cladding mask\n",
    "border_mask = ((X_g == -design_region_width/2)  | \n",
    "               (X_g ==  design_region_width/2)  | \n",
    "               (Y_g == -design_region_height/2) | \n",
    "               (Y_g ==  design_region_height/2))\n",
    "SiO2_mask = border_mask.copy()\n",
    "SiO2_mask[Si_mask] = False"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally we can formulate our geometry and simulation object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "geometry = [\n",
    "    mp.Block(center=mp.Vector3(x=-Sx/4), material=Si, size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # left waveguide\n",
    "    mp.Block(center=mp.Vector3(x=Sx/4, y=arm_separation/2), material=Si, size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # top right waveguide\n",
    "    mp.Block(center=mp.Vector3(x=Sx/4, y=-arm_separation/2), material=Si, size=mp.Vector3(Sx/2+1, waveguide_width, 0)), # bottom right waveguide\n",
    "    mp.Block(center=design_region.center, size=design_region.size, material=design_variables),\n",
    "    mp.Block(center=design_region.center, size=design_region.size, material=design_variables, e2=mp.Vector3(y=-1))\n",
    "]\n",
    "\n",
    "sim = mp.Simulation(cell_size=cell_size,\n",
    "                    boundary_layers=pml_layers,\n",
    "                    geometry=geometry,\n",
    "                    sources=source,\n",
    "                    symmetries=[mp.Mirror(direction=mp.Y)],\n",
    "                    default_material=SiO2,\n",
    "                    resolution=resolution)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can proceed to define our objective function, its corresponding arguments, and the optimization object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "mode = 1\n",
    "\n",
    "TE0 = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(x=-Sx/2 + pml_size + 2*waveguide_length/3),size=mp.Vector3(y=1.5)),mode)\n",
    "TE_top = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(Sx/2 - pml_size - 2*waveguide_length/3,arm_separation/2,0),size=mp.Vector3(y=arm_separation)),mode)\n",
    "TE_bottom = mpa.EigenmodeCoefficient(sim,mp.Volume(center=mp.Vector3(Sx/2 - pml_size - 2*waveguide_length/3,-arm_separation/2,0),size=mp.Vector3(y=arm_separation)),mode)\n",
    "ob_list = [TE0,TE_top,TE_bottom]\n",
    "\n",
    "def J(source,top,bottom):\n",
    "    power = npa.abs(top/source) ** 2 + npa.abs(bottom/source) ** 2\n",
    "    return npa.mean(power)\n",
    "\n",
    "opt = mpa.OptimizationProblem(\n",
    "    simulation = sim,\n",
    "    objective_functions = J,\n",
    "    objective_arguments = ob_list,\n",
    "    design_regions = [design_region],\n",
    "    frequencies=frequencies,\n",
    "    decay_by = 1e-4,\n",
    "    decay_fields=[mp.Ez]\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's plot the design and ensure we have symmetry."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "x0 = mapping(np.random.rand(Nx*Ny,),eta_i,128)\n",
    "opt.update_design([x0])\n",
    "opt.plot2D(True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll define a simple objective function that returns the gradient. We'll plot the new geometry after each iteration."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "evaluation_history = []\n",
    "cur_iter = [0]\n",
    "def f(v, gradient, cur_beta):\n",
    "    print(\"Current iteration: {}\".format(cur_iter[0]+1))\n",
    "    \n",
    "    f0, dJ_du = opt([mapping(v,eta_i,cur_beta)])\n",
    "    \n",
    "    plt.figure()\n",
    "    ax = plt.gca()\n",
    "    opt.plot2D(False,ax=ax,plot_sources_flag=False,plot_monitors_flag=False,plot_boundaries_flag=False)\n",
    "    circ = Circle((2,2),minimum_length/2)\n",
    "    ax.add_patch(circ)\n",
    "    ax.axis('off')\n",
    "    plt.savefig('media/splitter_{:03d}.png'.format(cur_iter[0]),dpi=300)\n",
    "    plt.show()\n",
    "    \n",
    "    if gradient.size > 0:\n",
    "        gradient[:] = tensor_jacobian_product(mapping,0)(v,eta_i,cur_beta,np.sum(dJ_du,axis=1))\n",
    "    \n",
    "    evaluation_history.append(np.max(np.real(f0)))\n",
    "    \n",
    "    cur_iter[0] = cur_iter[0] + 1\n",
    "    \n",
    "    return np.real(f0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally we'll run the optimizer."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  4\n",
      "Current iteration: 1\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 2\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  8\n",
      "Current iteration: 3\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 4\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 5\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 6\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAd4ElEQVR4nO2dPY8jx3PGixy+k7t7uDtBFnBODDi1MqUG5MypE30Bw5kTfwmnjpU5dOZQAhQ5dWAnhgOlgiGd9Nfecsklh28ODjVXrK2q7pnd2ztdPz+A4OxMz3QPd56u6uqX6Z1OJwIAlEP/QxcAAPC0QPQAFAZED0BhQPQAFAZED0BhDBLHEdoH4I9Lz9oJSw9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ADwi//5fP9Hf/st/0N//63/Sn1b1hy6OSWphTABAJq+XW/qnf/tv2h9P9D//d0Mv5v9L//x3f/Whi3UPWHoAHonN7kD747sFpJeb/QcsjQ9ED8Aj8efPZ/QPf/0X1OsR/dnlhP7xb/7yQxfJpJd4ay3WvQegJfX+SKPBR2FPzXXvIXoAPl3wsgsAAEQPQHFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBkQPQGFA9AAUBt5P35HEOwDBE9Hrma9rAwEQfSYscv39PvIAMVLovV6v+RsVQB4QfQan0+ne53g8Zov0McRcQoXQRrQs9n6/33x3uU6JQPQJtNAPhwMdDgc6Ho+N8NsIMietlSY676H5P4ZInuIa0qL3ej2qqqr5nE4n6vf7Z+IHNhB9BqfTqRH7brdrPrzvoRZf7m+77V33sT2DSJD6WJcKIPcabNWrqqLhcEjD4ZBGoxENBgPq9XrNfcPa+0D0CaSF3+12tNls6O7ujjabDdV1Tfv9PrT2kUCtbfnN28fjMeucVH7ePksguVZXbj+0bc1W2rsO/11VFY1GI5pMJjSdTul4PNJkMmk8AAg+BqIPkK794XCguq5pvV7T7e0t3d7e0t3dHdV17YpS7reOS2Fb2/pjpbPyyfUQNJaQozSMFGuXwJp22/U+mY7d+ul0SovFgvb7/ZmrfzweIfwEEH0GbOnruqa7uzu6ubmhN2/e0O3tLW23WzOoF1nuHKGzkNtWAJH1zxV9G/FrwepPDjotB+essvR6PRoOhzSdTmm32zV/j0YjGg6HVFVVVp4lA9EnkJae3fvVakU3Nze0XC5ps9ncE31K1NExFrsMElqCt7yLNoKX51uR71zhW2Jta/GttNrVl+mGwyHVdU39fp/G4zHNZjPa7/f3fjNYexuIPgMt/O12S3d3d7Rer++JXosyJfocy25d37Ly+jhjNTMiLMExVjvbErlnrS1yRc/7OWg3mUxou902QdXHDl5+qkD0mUgBctR+v9/Tfr+nw+HQpJFpLaFHlYEl8MhD8MT80Da9TJdjLS0Lz23rVF58Pu+zzpdpD4cD9Xq95ne3LDyIgegz0cLkB0331XuWmo/pNPx3ZM09q+4hxdvWxW0bBJMWXZ6f0zzg8618teDlvbT5LcB9IPqWtGm7R24779MVgry2trj6wc8ZiCK9gVwxayHL/DVeII/3RU0F7xpW+qhCAO2A6DOwHvactroVjOM0kdgZLXRJbj86R7Oje2jT5+4JX6arqip5Hauslsvv5cUfq4ICMRB9B3La3F703RO7xhJ8ZP2ifW3RwTSJF0fQgbu23XapgTk6rYwjpNKDcyD6FkRibhuF99Bt2FyLTuR3c0X346X3zrOaN5Z7zuXJEWOuVyB/E0v4IA+IviO5guegH+/PxROuZRFTovFcZS5Xqp+e0QE0q69flydXkG0sdlVV9yoUy+sCNhB9B9pY+Gi0HlHsoqcE7lnVnIpAlsWrYLSo5P3p+/DKaeXtnReVU6ItvO5R4Q88ABuI/gFoi2dVBlZ6Dyn2VPs4Gv3Wtj3N19PlsO7Xm2dg3YeHdzwqg2xK8L1zeeR4icPhQIPBwLX4qAgg+lZE1q5LG15bOC1k3q8rg+ij0+l8csuSuvfIjc7JL4on6G1ptfl3IqJG8HVd02azodFo1Ey86ff7prUvyfX3/g8QfSZWe/Yh7ceU4LWII8FzGu9YV/Hr+4+6KVPny+tY6aIySjdebh8OB9put7Rer2k4HDaVAU+9xYIaNhB9B1JuvYf3QMslnywhpyoEuc9rGqTIEWuO6FPX8PLJrZj4+PF4bKY693o9OhwOtNlsaLvdUq/XaxbWAPfBr/JAHuIueoLPceNz0rR18WW5rPvjdnRbpHXPDeJJi673sVt/Op1ov9/Tdrul29tbGgwGtFgs6Pb2lpbLJS0WCxoMBo2rXxpffPGFuR+i70CbAF30oKcE7wXr2gg+V+yRBWYL/RDB6225L2pSeNu8voH0uo7HI/X7fZpOpzSfz2k2m525/aUJ/5tvvjH3Q/QtsNz3qA++3++bs81kV5wl8hx3XtJV6Pre5PX0Pq9nwhOy9bcXTZeVis7b+pbLl3EQj5cxq+u6mfU4GAwa0ZcmeCKI/tHJjVxbwaTIXY8E7+UTdU1FD7sXVLNEG7XpvXwiS50b8NPfvBLxbrej9XpNd3d3tFwuablc0s3NDa1WK1qtVs2KRrKS1PlGTY2orPp38+7nY7i+BUT/SGiR5QSsctvnjKxActzi1EOeKqu+liV8K63+O1rEQ/a56yaE7PpkZDcdt+Wvr6/p999/pzdv3jTit9YvBG+B6BPkuK8Sy/W20ljtc68Nb+XvtbEjoacss0ck+JSovDxlUI6RlZruGeFtFj2vYLRarZrAHQt+vV7TdrvNvr/SgOgfAd0eTaVlugiesawqnxe5jF262fg7Wpcvda6F7l3gtjifY314tRxuz3Obnpcl3+12sO4JIPoH0u/3myWccttUui89Erxl/fS1dCDMcpP5O9dCa7wAXlfR62aO3GcJnffLYbf80pG6rs9eQCJ/F3AfiP4RiKLzUfqoDZ87mky7x557r610jiAsgecE8KyyWXhLZcm2vMxTrk8oP7yf0/M2sIHoOyAfUM9d18esa1ji5+vI8z1h6UBc9KBr6xldV18/5SHIckTBvdyoNB+TIpb5ywUxpdhzK7PSgeg7orvZeF9uu9xyb4ny16frKlxL/B7Wm3PaxATauvc6Hxa7Ze35W1YOIA+IPoG26p6F1l1w8ngO0TrxKUufc9wST4TVdZaTJ9NmCq5uykgRayuu3xjcNrgIIPpORFZeirfNLK+cZgGP8JOkAmme2LsE4jyR5RCllVF7r9xWG98rF4iB6DOJrLs3081zXeW3vrb85nSptr3Gaotrwed6CXK7jRudE+zTv4HnmbSp6EAaiL4FupuNPzzck+h8/TbLYue2c61zOF+9ln1KYF1ddR28yxFvlG+EVaY2Flw3j1Ax+ED0CTxxSuETnc+Y8yy9Fpy+tlVJWN1vcn9bIerjTyGOXPHrdJbgo25OkAdEH6BdY21xtTsvrb9+INlNl2K3LFIUxPMsmNwvB+mkAmiy6aDzktfSswVzy5wqS+4+jfyNrd/cG5gD6/8WiD4BR4qtpaylu209eDryrx86LbocZJ6WeHME3yVfb2Rg1EyJsMqprxUtlNnv98/Ww6uqigaDAVVVde+FouCcUPSl/2gsdDnkU74l1QvcabFHPMZvbAneyteb32+V1bLWvN97VZZVGUT3b1VWUbl0GXi+/Hg8pvF4TJvNJnyNF3gLLL0Du/S73a6Z0HF3d9e8D92LZEeDTuS1cyLoObR17WUgMBJkbhPAijPI/bpdbpU3dX/8La8vBT+dTpv/y+n0blIOhG8Tir7kAAk/ZNvtlpbLZTNXm6dtWrO5WMhRG9b6pEh1YeVYS07HVtJrv2u8vKwyym/elu1rWXZZ5sjiW5UnW/nxeNysd0/0tiIYjUY0Ho9pPp/Tfr/HirgGsPQOh8OB1us1XV9f0+vXr+n6+pru7u6a1Vp4RpclfHahdSBPC9cSStSvn+rCyhW/zicKHubMVpPHvT51/ubrWRVAVFa9Ao7cPxwOaTKZ0GKxoM1m01j5fr/fLIypy1kyoeh//PHHpyrHR4F8qHa7HS2XS/r111/p119/pfV6fTalUwteCjzqrktZeq9vv03wTLvQqet7eeaiKwm5z3Lz+b5lBaDT8LW837SqqjOxc+yl1+vRcDik2WzWtPUh+nNC0f/www/v1cXvEkV+H9eXAun1es2ii2zZt9tt85Dyu9e94B0flw+rdm+9wS6poJd1jszDEngqQNYm0NimfJaF579lJSZFr11xHcDjb+4p4ej9cDik4XBIVVXRbDaj58+f04sXL2ixWBS9MKZHKPrvvvvuqcrx0cBC4Sg9W47JZHL24QdNd9VFIousfCoAmGoKRIK32sn6HK9Lzuoq80hNftHByyhOoZFzHLhNPxqNaDqd0mw2a5a8vrq6os8//5w+++yzZt173SwonV70Q7x69aroX6mqqmYN9cvLS1osFnRxcUGLxYKm0ymNx+OmzagtvqwEiNIPuXcNLRqJ9jSsCiNqCrSd2eel1edErj3v9yrA6Hnk++PXVs1mM7q4uKCrqyt69uxZs/38+XO6urqi4XDoXqsQzH9UaOl/+umn91OUPwj8YF1dXTV99IyeTZcSBNH9kX1Mr9c7C/7pa3pC4GaGtV9uW96H1QyxyquvGTUJUq69PpZ6LZh13+xZcfReCv/q6ooWiwWNx+Pm/JJ7oDwQvQ+o67p5wNjCsFs/mUya/XL8PZFtNb1oPafn6+gloeU1ZHqJtdKO5/pHy21rdJ5tmiCeeGUaK5KfOl/GTlj47OLPZrOm6aW9pBLxKjyIPoAfHF5uebPZUF3XZyP0ZFCPF8jUWG69fBEDX+N0ejuwRFthr2y8KCfRedda6jyZZ9Qs0BVHJPxUIM9KJz+6AtDX1j0Eum0/Go3OAnpyMhQ4B4NzAlj0vACjHo672+2aKLI+j+h+m1a7sFxJyEkjerw5/83X0FZdikWK3nJtrWW9rKaJ1xOgz/XiAKk2uif8nApAl4Ej+DzuPprWDN6CsfcB/NDJNdn0goxy0cZIBHKJJwmPjuM0g8GgefCJ7q8qw39XVdUIgr+9aD1R3ksvGcs1ttJay1zp871nSFYM1oo4/JEelFUmWTYIPg+495nIB5MHgkjRe269bstbIjgej43F2u/3jefgPcAsBBa+HFabCl55Flu705F1JbIX8ORySOvs/S4sYm3Zdfue85IVW1QukAaiz0AHldjaWoszeudYEWrtoksBp0TMFl6Pbc95+D2haC9BbluC9/Ky1vLT+ej78I5HQUnQDYg+EysglbNmnGXBrApBWjJtKaPIvXSR5ag3z8230AG6VEBQp9dlYVc7NeDGKqMsuy6PRelN0C4gvPkRASsGngJY+kwsVzhnAUx5TI8B11F067qpisAKqkXtaYso2Ja6Ny86n7OgpRXF1+VJWXJUlO2B6DPQbUo96cYKahGdP/wycCXRffV6n9ee53Ty7zYil9Fx67i1zXnIpkR0z1H+uhzeJ1Ue0B6IPkBbaSlOuTZbNBJPBuZk9x6n1ws76rH8XrlkhSPzTglfR849S536XSzht3nbTG6XnRcL0ddBZZAPBucEWAJnUcp9uYNzdGRe5mEN0JGitgbnaE8jEr4O9PG3jvynXH35yXnXXVSp5Fh6PbDJChzKtKgA0mBwTgJ25+VCjMPhsNnmkWAyvcZzWzm9FD7R/ckwRPZcc2uEXUr4uk9fTvRJufW832p6WGLvKvhUZSI/crQkb/MAp9KNlgfc+wB+cHgBxslkcjbGm0X/PibceKKS17csfY57z1jLenlpdYUSpdeCt7ZTLrx3PnsYLPj9fk91XVNd17Tb7Zr/Sds4x6eId+8QfQAv0rBYLJr59PP5nKbT6Zn4vam1uq/aa59qS23NmrPwehCsSof3yaaGdVyfp68ZVSyea++JvsvUWr5nFvx2u21WOJJNr5xJS6USiv7Vq1dPVY6PjtPpRIPBoBG9XECD11+Tlj5ysXNcWG8RDT5ffjM6T+sht87t9d4O432fi2hoj0Kn85o8UZNSVlws+PV63VS8PL+hqiqaTCYQvEMo+q+++uqpyvFRICe58IQajqjnLpeVsoRR256/U66zd06O4CVSjN5yWRZWd11qFVzeTrn3qXz5Pvf7PW02m8bdr+uaVqsVrVarJmgpl8sqMT6lA8xMuFzWt99+W9wvJR8ivTAmVwCRhf1QC2Pq8yMXW56Xk2dOGVOuvRVpl3/nlFHGMvTCmIPBoPHMsDDmW7788kvznxVa+q+//vr9lOYjRbrTdV3T7e0tvX79mn777Tdar9dn8+i9JbCjQNzpdH9GWY7wpUg8q5UbWJPtd96Xas+n8Nrs8ttaGUf/BlaTh8snP/INNnqaMxE1S2Bz4FV3VZbCl19+ae4PLT0RlfUrCY7HIy2XS/rll1/o559/puvra9psNrRarWi9XtNmszl7y40WvRWM0+6sFkaOcLsOb025+l5PQXSOdTxy8617yRGi/F35fBnIk68d4//L6XQ6e8Flzn18anz//fftLX3J9Pt9ms1m9OzZMzoejzQej+nm5qZpJ0lLz9bTsvYMW2h+2PWUWA9t2b3Za5ZQI9HnCiCnkvGua+Wpha69HemJEL2rjPRiIvyOwdVqRbe3t7RcLunm5obW6zWtVivabrdnC5mCd2BwjgM/jOPxmC4vL5uHT1oXdvOZnL5sPvYQrK5AvW2J3nOjI6xr5xzXeUUBveg61u95PB6bdQvv7u5ouVzS9fU13dzc0O3tbeONlfz8RsDSO7DF5oE5/JDpte41bKkil1270m2Dad7xHCueej2WtT8l7JxrewG9VHnl7ymtPr+FiF379XrdNLvquobgAzD2PkCusa5H4KXcdWtgjWd5H0qupbci5tY1rP1euz23UrLE7pXduoasSOV6hex58ag89rxK7abLAZY+gTcRhui8jSonxPDf0iW1xCj3M6mK1hNvjnhS6SL3vYvQ5XZOObVQvWYId3vK8RTeQqW6wgAQfYhsT+rosV4oU7ezo247vS3PyRWstz/XZc5NR2S3y9uUyztuDSayPCSNXFmYt/X/I7cSLBGIPoHXbtcPnHVe7si6KE+vKZBqHqQqkKe0gqkYh5WOyO6psJotEHU7IPoWSMFqC8PuvFwS27L01nZuIE+69tZxvpZ1bS06K0CmrytHwBHRPQsalV9b7ZTYdZmYnAU2ddlQCcRA9JmkAmSyj14veGFhrV4b5d3mQbZ6B2TZcgK0lgcQdRVGZcgdRegNZOLz5UAo0B2IvgM6gKcXokiJmfd7E16s9JaVJ0oLQJapjYC0pZaVB++L0JWD13XpTd6R8QSZP7/tRo+JiH4/cA5En0C711YwTotCC8RCDzrJ8Q68a0THpdB1WfX9WUjPIDcASETJEYfRICY+l6f/Wr+7Hu6srwkX3wei74i29kT2e9hTo/Kk1WLx5yyi0SY4xtewxJO6Ry3eNmP/rW3t9keeBjcnrG44nmWne1ZAGoi+A95DbYnfc2sjl1cP9vGwLKTeL91ky2JH6MpBVwLymEUqfqBn0clryliJHPtAROYCpVbgFNhA9I+Atrg5i1BI4VuLXua6+9YS2Fb/dxeLra9heQmR6KPZbVZ5daUkXXuuCOXioXIWnRQ/T4qCi28D0T+Q1MAVjSVo6dLLdPL6Mr1OFwmI0SJtEzuwAok51j5VMaTKKz+ynX86nc6GRo9Go2bNwrqumzcKAxuI/hHIbSNzGqv9HgnfwosJyH1eOXPLKtPqXgmr2RCdr/O0xG4t2aWDppxGip2XMOMx+LvdLvveSgSi70AUfErt09H9LsL3BN9W+Px3aowAf1s9F1bw0vrbqxyilYR15cJpTqdTM/txPp831l1XKnVdw+IbQPQJcgND3gOfIzI9UMcrgxXZt9JFQa0uga6oqzK6L8uyR2XW6WR+cj+/zEKOiOS18qbTKV1cXJyta5jbPVkKEH1HUtZeWyiJHCijrbxl7XV+OnBoWXivrdzm3nQ3mRa6122o9/G9pgJ6+jrSK5LXlIOhqqpqLP6zZ89ou902A3iqqip6jTwPiL4FlgWVQ1v1Q+UF+WQgz3LvZVeVzt+qFKJAWZt78/Z5TQBPzLoCSJUjJXidln8bXv2WrT6nn81mtFgsmpeS6KZC6d16EP0j4Fkxoridb1l3vW212T1vIFXGCM8VbxOk9PLVHkNuuTxPgkXP/fX84pHRaESz2YxevHhBL1++bNa9L3UJbA+I/oE8xGrI/mctdiL73fWMlUamk+3ZqFKy7sWrqKKgXu79evu0ZffSSis/Ho9pOp3SfD5v3jx0eXlJL1++pOfPn9NsNssqV2lA9B3gB9MLquVYfflwa7deWnSdj2X1OY3uGYjay6l7s8qeI/o2HkVb5Ln9fr+x7JeXl3R1ddW8dmyxWNBoNOqcz6cORJ+JFo61zHUbtFXTLrvu1uPjlvC1ldTdYG3F7rXfo+i9d63o/mVaKz4QWX0ZxJvNZjSfz+ni4oJms1kj+NxpxJ8q3r1D9C3wouXyW8LWO7L8Wvh8nmW19eg8LXwuh16fL5dozoDVG/EYAcQof8+TkL/TYDBoBuiMx2MajUb3Xj0GzoHoH4C0rDlWJbJccr9eZNOqbHRk27PuUaWkra1cSVafo628dR9entZ1rPO4qy2F7vLk99jpV1RD8DYQfQcs99oTvlxtJrfLiNPpF2nw9eTf0gvwBO4tVGGlidz8aAyCNWOuSywhJ61cWIPP4ck4EHwaiL4jlmttCV+66pGrL7EsqFUR8DGZl97X6/XunWPlkytUz8pblU7uPPc2efP96AVJrf8HsIHoW8AWxbL0fFwKXGNZfY0e2hql1YGvxwpcaa9C4o1lt3oYcgbmWOfLbw1beGnt0QffDoi+A1rkURBPU1XVWaWQEr9VCbQtayoPy6Vni+q5+FEeunLUeVjn67y8wUfclNEuPoSfD0SfgfXAWkEzjR6iKx9ST/xW1PohFUCXWWZtlp/yKkAWcTRByLtGqtz827VpMoF3QPQt8ayihx50I8WvmwNRH3UURPPQYsgdldemovBWAeJ9qYi87qHQTQJrP6z7w4DoM9GRerkaqxxYooVt9cVray7PyxWz13zg46lt7x69bjgPOWhI52Ht08f0eoBa5LJy1OciYNcNiD4TKXie6MFLNlnLPetBLNq9t/bp4JTlwuZ+e2XJwXPJvWaOFdD0FsewsGIjVhOD08h+ef5+6AjJkoDoM+CHiRdqGI/HNJlMaLfbmaPuvIEs0bYUuNxvBawsj+Ax4gCWSD0Red1zVgWQm2ckepluOBzSbDaj6XRK4/H47PXhIA1En0ALfjKZ0Hw+p/1+T/1+nyaTSbhgZCRGT/iW+D1Pwbu29W2Vke8xtR2ltz4ynUxvuf9627LalugvLy9pPp/fEz4sfgxEnwG79Dyri9+8MplM3HXYItc6VRHkNAVyAntRwEu3oZkcl17ijcTzLH1K9N65cl9VVTSdTmmxWNDFxQVNp1MaDofNEFwQA9EHyHY8T+zgQNxoNKLtdntvQUYmZV295gB/p2IEbbatvz1yrLu1/yHBNWuiT+R9SK9rOp3SZDJpYitw89NA9Amk8IfDIRFRM6WT11dvK7BUJdFF1G32pWgjmlRzILL0uefov9nzkuvec0APgk8D0WfA1kW2761RYW2Jzusi4K7leAiRyKxjbbsEvUqBrbp8yw3a83lA9AmsABOLnqib0B4izg8h7C6khMf97w+5tl5ODGLPo5d4iP4YT9gTkIqIv6/8wDuicQLe8cIxfxCIviMQ5ccBhB5i/jhw7zuChw38UWm3eDoA4A8PRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABQGRA9AYQwSx3tPUgoAwJMBSw9AYUD0ABQGRA9AYUD0ABQGRA9AYUD0ABTG/wPEOGqmh7jYzgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 7\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 8\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 9\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 10\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 11\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2duY4k27md/8q5KquqT/fldMAjR4Bc0aMrgHIIudfhCwjy5NyXuO59hWvKk0kCtOTKkBxBBl1CYLOb3X2qq3KsShmNFb1y5b93RPXp6XCvD0hEVGYMO6Ji7X/YQ5wdDocwxrTD6EsXwBjzebHojWkMi96YxrDojWkMi96Yxpj0/O7UvjE/Xs6yL23pjWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96YxrDojWkMi96Yj8h//19/jv/0L/8j/vO//s/42+32SxcnpW9iTGPMQP56s4l/+m//O/YPh/g//+/7+Ifl/41//sd//6WLdYItvTEfifXuPvYP7yeQvlnvv2Bpylj0xnwk/s2zi/gv/+HfxtlZxC+uF/Ff/+O/+9JFSjnreWut57035pFs9w8xm3wV9jSd996iN+bvF7/swhhj0RvTHBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY1h0RvTGBa9MY3h99N/ID3vAPxsfC3lODtLX5v2d3veHzMW/UBYXFj/GIIbcoyPtc2n4FOJru+4+J2XrgCGYdEP4HA4FD+1ffqOWfp7SAXT9/1jygKGiCbbhr/rO0ZWltL+tXOdnZ3FaDQ6WQ4pQ+tY9D2wwB8eHuLh4SHu7++7dWxT2z/7O1tyRVKqYIb+XSqXfqcCGSo6XoeVVeubURN9dhw9Hz6j0SjG43FMJpMYj8cxHo8jIjrhmzIW/QAg+Pv7+9jv97Hb7WK/33fi5+10P11mYn14eDipWPQ7Xefv7u/vT45ZEn+f6GrL7Du1tipcvR+l82eWW8+B9dFoFJPJJGazWczn85jNZjGdTmMymQyqeFrHou+BhbXb7WKz2XSf3W53InzdL/uwcPlzf3/fHY/XH/vJhJ+VUVHhRsTJOn+nQuWPCj+r+PhY2f7j8fikTBD8fD6Pi4uLWC6XsVwuj44Fq29yLPoKLBiIfr1ex+3tbdzd3XXCz6xqyXpnIscH3gO8iWwbDi+4UsDveu7HCD+z1pmLjW1ZoJPJpHO5ITwVPe6FnhMfuOn8t1Yio9EoptNpLJfLuL6+jqdPn3bnw+dwONjSV7Doe1BLD9Hf3NzE3d1dbLfbo9i+JHS14Cp2DhvgQWTCzzwCPod6EygXLzPxcxIsc7HxG7bV2JqXqABUeFoJcaXCokWczoLn5Ww2i8vLy9hsNnF2dnbk5j88PMRoNLLwK1j0A4CI9vt9rNfruLu7i5ubm7i9ve1Er4LvE7kKnkWPD2+rAs8qFI31UXZelnIQmaBrCToWIqw6xIr1zMXXmD6z9Grx1b2fTqed4BeLRVxdXXUV5dCWipax6HtgMUOoiOlXq1VsNpsTwUGEKu5syVZdl1xpaOtBRKSxPJcZ63wt2E9/i4gTC19KyGVJPBU+C1bvJx8n8xbwySoceAKj0SguLi5ivV7HZrOJ/X5fTBSaYyz6gajw2Tqz6DKLDiFnFl7XVeyZ696Xvcf6Y67t7OysO642e5WEe39/f/TbeDyOh4eHo+84bOgrk3oFWSJwv9/HaDQ68orUuzF1LPpHUIrZYWW4WU9d98xtL3kD6sqX3HCUhQWLcg69FkWta2ats+1hmdVVL3kL2FcTd5yxx5I9FP3NPB6LfgBZk1spq87Zd1juPktesuoAD3lEHFnSoe3vfdej+9Tc++w8LFx27zmhl5VFm+k0lkd5NOs/mUyOOuW4AngcFv0jyWJ8ttBZJp4rgUzgWVwO1NXWprAMda8zN7nkErNAP7TZDYKE6LPusdq+zzE9V3JZWdFOj045Fv7jsOgfQWbps9hcBc8fteZDxBfxuDZ0dqtLVlZbHPS8JRFlZWbxsuBVyBo6cGig4tfKhhOYk8kkFotFJ/w+j8IcY9EPRAXPAuduuSz47XabdrRRi6nJN+12qu3UWfu1rmtsrPSJPtsva0HghJsKnq19rUmQO/RkWX9tpZhMJnFxcRGLxeJE9KYfi/4RZFaeRc/WHYJXK68dZ0BmwbkdnJvESj3WNMZlMai7jGVN9Fk8r4lLtfaZ8Euehzb5lbrwcujz8PAQ4/E4zs/P4+LiIubzuUX/SCz6AWRJPIgd/fG1jV0H5nDSTsmsddZurfFytk32twpJE3lZHkGFp1aeOwTxflpOTcyVev7VRM/nPhwOMRqNYj6fx2Kx6GJ6vS5TxqIfSF88r/G7Zu1LzW/qksNCq3sMN5Y/mUVVwZfi3ZLoS5Y+64eAawK1nnW1mF6z+Pxb1jcB92M+n8d0Oi1WZgyOZW/Aou+FHx5ul89iem2LzzLzePD44WcLrWLGkNHpdHq0nokfXVQzy5+JHsuS6PU+ZJY+c/G1L35W6ZREnyURNf9xdnYW0+k0ZrNZ5zmg4uVKhkfbfUinpR87pQrOoh9A1ikn63yjHXOypjj+R6hFzj4QOJqnVPwQfMnyl0SP6+IlyvcY0Wu4wkIviVitvSYptQyZ9cZ5DodD7Pf7ri8+jsMegDnGoh9Ilr3PutfWeroxLEqIV6166ZNZ+0z02gSmQuJr4zIOEX2pQlPrHXHc16Bm7TXcKYUjfByMhXh4eIjNZhPb7TYi3rckmFMs+keQjWwrufAAbqYKgy18Jna27llFkHkFWSzNnV2GWD4WPpaZp6NNd0zWLFc7X8nK10QPCw/Ro5yTySTevHkTl5eXsVgsurCnJbcefPvtt+n3Fv1A1NJnA2GAWi+N5SF6te6ZG5/F9Oz61zL6WXKMy5iFHCp6vf7Mmuu18z0o3Uvehr2PLO+QlQOeFTeRbrfbrk8EV6iZd9MCv/vd79LvLfoB1CwdJ5kAW/esy6rG8SxwFj0qhSxxV+vQUnKRuXy85O9LQuV94K5nIYIelyuXbKmWXROd+j/AfYfAV6tV3N7extu3b+Pm5ibevHkTb9++jdVq1WX6W7X0Fv1HQEWfTdqgglCrFnE8JpxdeBa8uu5Zs1YpVtZKCg99Tey8r26nmf6+TLhWBrpP1pymLRp6PLXw2+22m8zk9evX8be//S1evnzZfd68edN1IurzOLL7kN0P3a/koXxNx8+w6CuULFmpR50mjrKkFfeWY/e+JPhaezsLGqPvIAw+L4/MKwm+zy1n0WoXXr0Xet+4uS3bZ4jY2auCK39zcxOvXr2KFy9exF/+8pf461//Gi9evIiXL1/Gzc1NrFarE0/LWPSPgh9WfpjUSqkFznrcZU1zLHrtequxL5dDf+O2a+0//zFEr2Icst2QykLvMwudOwfBrf/+++/j5cuX8fz58+7z+vXrePPmTaxWq/TYxqL/waios4Eu2hyl3VVV+EO60GZiG4/HRxNN9Ll7QwXP58hc9SxWL1npkvCzfUqtJHDtIfoXL17Eq1evulg+a1Ew77HoPxCNrTVrru3juq796TV+1/2BuvKcrOoTfMmyZvF0lkXvE33mxqvgs+bNkth5diEWPiz9mzdv4vXr13FzcxNv376N9Xod2+22uyctJu+GYNE/ErXYk8mks7Iq5FJ/cm7uynrU1Sw81lEWCL3U+433zRJwmZUvCV6PVXPlS0IviV8TpDyAST+YlZiz9ev1+mgIs2P5Mhb9I2BRsMAj4sRaZyPMIk5H1Gmf+8zClywryqKeRCmTr58s0ajoubFeSs7VBJ/1b8jc+FIXZ/59s9nE3d1dNyMxtqnlCsw7LPqBcMzO1hwP/3g87kbCcacZFT2OFfG+AigNhQUqvCG94HR7zQVk1p7X+yx8LVGn1rs2PZj+piMXS1OM7Xa7uLu76yw8i97UsegrlJrc2CXX3l/8Uaudueds8TUcYIsMsbKFZLIsfsnqZtawFBLg2FhmYudZdPoseU34pZmEs74RmJlI57y36Pux6AegzXGcbcf33KMOFp/df6Ciq7nnJavL4s3KiW2zWLkkeqVkxTOLzufJzsnf8aw7WM9ce17H9qhc2NrzucwwLPqBaOwNkUOkEDuEzx1ruDONCibitNkP37EwayIEJSufucclNG6vCT4TeS2BV6oAsvLx7MJZ/oDjfL0PtvZ1LPoBqGvPvejwPUTPPevUVeeHmt13PkeWUGMLnwk/g0XGcXGpwuD9SsL/UJGX3H624tnfWl6+H7Xr0ArTHGPRPwKIGNZ8u912otdBM2zpI6IT336/j4h3D2ZmcbkS4L/5d/1kv0MQpURYJgoV+8ew5iiDeh7qhWTHjMi7PPP/g++VGYZFX0Fj6Yj3k1+we6+i52a7TLywaOhQUxIgn1/XM9GrR5AJsdSsVbPufVa7JtysEiqVLctV1JoSHx6OX3OVbX84HIoVaKtY9D1kAuP4PuLdg1aanZbjeX5QNfFUE/4Q6w6y+JfP32fhS6FEqQxZMi/LXUDwtevKyHoKHg7vJsu4v78/mROPr792b1umKvrWbxZbI84oR7wXPixJrfddxHHMXhJUqZ1dLe0QsfShzZEqEq6YtEzZdekxa+cp3R/c1+wYuj3CJFQm7EmYOrb0BSAoTLqIj3YCKbmfOAavc6yqlhHH4mVEnvH/ELFnFYqWm8WPMkH84/G4G7WXnXsymcR+vz+ahFMTlqjwdPRf5rloZaGTe2q+hK/xcDjEZrN51P1piaroW06Q4KHdbrdxe3t7MqhDY+MsBsZx2FrrrLnaT1x742ncrLGykoUOfE21Mf84j3oluAbOQWCJ77AfixqeELv3CHs0nudtUS5uNYk4fqHm/f39UV+I2WzWVcyLxeKoqS/zHlrGlr7A/f19N5ILkzKgr/dqteqmayq5q3iYWfTZu+o1cYV9+G+uSNQ7AKWuvrVl1jTIIsa6xu3YlisjeAIQo7rbh8MhptNpMevPFQnKpyETW3utSNFDD/ePu0Vn03u1TFX0f/rTnz5XOb4KWLC73S5ub2/j1atX8fr161iv10cPF8eRsHAqUBYi9zDjPuX6oGfZZxW9Zrf7rgfi5W1LffVxLhU/fudysfC4+a1UUUQcJzS1Ess8Hs2TsPCzims6ncZyuYwnT57EcrmM+Xx+4kW0TlX0f/zjHz+pi5/FlV/i+Cw6/I131OFFlLCCEafzuONhREzLg21wPLZKfa49W7MsM67n5rH0SrZNJiYuJ3+yGF7Lloley873Oasgtbkus/Q6PoH7ReDV1VdXV/GLX/wifv7zn8eTJ0+6TlIW/Huqov/973//ucrx1YAHGvHmZPLuXeh4qPD+NG6i40/WXKeiV6ut8WtJ9FnMy9uXYnlsz3Pgq6C4nJoRr3kivH3W6w/HBXxva6LPrjEijirV+Xwey+Uyrq6u4vr6OpbLZfzkJz+JX/7yl/Htt9/G1dVVN9WYlqNlzmo34rvvvmv6Lk2n0zg/P48nT57E5eVlLJfLuLi4iPPz8zg/P++siL5QQl+dzDE9P+gsJq1AAISsguBzaR9/PicLVwWvk22qENlKZxWTnoetPX5TuCLjvvelkXJcyWAJ675cLuP6+jqePXsWz549i2+++SaePXsWP/3pT+Pp06cxm81+4BPwoyd1c6uW/s9//vOnKcqPhPl8HhcXF7FareL6+jqurq7i6uqqG7+Nd6NH5DEow4LIrCePvUclgm1YRGrxEKurMEriQRnVU8E+o9HoKBPPeYHa8F8VfhYSAM0HcFhQqjD4fsHKn5+fx9XVVSf2Z8+exfX1dSwWi5P7Zd7j7H0FfikiP9gR70S82+2ORtqx8DSJpy46W97SzDkR+Ww5HKNmTVvYj5e8rYYjOijo7OzspE1et+fKAvcki+dLrQWZ6DWxx9fA9wCZ+cViEefn552Lf3l5GRcXF93bbFt350sVnkVfAdZut9vFer3uLCSEjt9KzWIR+ew1vE02zZZaX90vezdeqQkOSxUf5x/0N61wOFlZmhFIwwlNUJaShjyEVi0+H4srXJRhOp3GfD7v8i0Y4ZhNU2be4845FWD98K606XQa6/U6ZrNZJzwWTQZbeM28oxLBA7zf77uHNjsOl4mPwa/QKlUWfF6NzTmc4CY6TjSyR5LlEWrXmYU96uJrq4aKn70AHeOgMwm3/tz24b73FRDjciIOFQCEqfE3o66uuvVnZ2ddh5XD4dDNxMNxeuba8zrH0VyO2v+Oha/ufUR0x8K1s5VnoeF7nC9z7bPzaC5AeyryrLY6HFkrkCzsyLwe8x679z2oi8m96fBwAm2aYteef+fkHVDXt/TQ8jG4bNoBJQsLMje+lo/gyidrksxaGrJKKhM9ysgdgLAcjUax3+9PxKviL4U1Fnwdi34gKmJ0xOEHXDuhZMKPeB/jarysVlwtNwtTY90seVajFMfrOn9X6iSD8pQ8k75+AaVcAj68r3oQej2mH4t+AJmIOXZV91630yYszoiztS5Z6WxfFVdpvfZdRp94St5CaduSSx5x/AJOiLtUqfSdywzH6c1PhB9O87ViSz+AknXTjjTaDZY7z2TuvbrM2XnYbS654VxGrGdZ+yH0eQQlr0e/w9+cCMW1cxik/fBL3z02fDFlLPqBaCaa+9+DWiIva1vn6bQ5K65t50yWuVYXeAhZmNAXVqgolSyRBxeemxWzRF42z0A2Cm9IeGPqWPQ9qMC4nRpi5YeY6WuyG41GRxNp6oSapcQYd5DhGLlP9CUrrULP+uzjw5NsQNDs6eh18rZcVj6XttOjVURfeoFycR5A70/2fzDHuHNOBXXlIUoeysnNbrxfxHEHFH1A9ZioQGqdc3DcbISfTieFfTKyVgUIN+syrKED/s5cdQ1zskQel4Gtulp5tvS8HpHP+JtVVuYUd87pAW44XmSBYbYs+iy+ZiutGXy2gtqjbGg3XA0FNC+AbXEMoK0Pmm9AWVU8mav/sbrh6odfeqExPkAXaHgGpZmIzCl27ysgETWdTmOxWHTDarHE2Hp2r7HUATcR+TvoPnTAjfaQy0TFCUC+JhYcjscuOo+Uw3nZpeYONbiumuizfENJ9FkCj8uNdYicJy3dbrcnU2S1bO1L127RV8Dwzevr66OhtVdXV53oeWhtlokH3KNPLTcn9WDJWbxsiUHWM06z+2qlWbSaUOPfs7n4cA7uNQfUGg8dWpvNuKMekQLPZDwex2azidVq1U1cWnvvgHlPVfTffffd5yrHV8lkMjkatolJNDD3WjaJhoow4odPosH987F9FiuXQgyUQcvCf/P5OEbGftolF+fIBD9kEg2Nwx87icZmszlqRUGy8HB4N9vR+fm5BV+gKvpf//rXn6scXw2wZniAxuPxURyP4ZtDp8tiYXDcmU2XlTW9Zdn0iHKCLEMFD/b7fVo5ZXE9nzNLxnFSThOBWg7eRl9amQmey8jTZ3NZN5tN3NzcxO3tbSd8TJfVKllCOKJH9L/97W8/SWG+ZmAxtttt99ntdt1vbIX5O21K+9CJMVXAtWSWipBjbIWTb1kyj7cptY1nxyy56VzBcIYff2dZd/Vmsj4J7BVtt9vYbDbx9u3bePXqVczn83j+/Hm8fPkynj9/HtfX10cTarSW0f/Vr36Vfl8V/W9+85tPUpivFX74dQrs1WpVnQK7lIXPLP2nmAJbKyPevyRAdtn1XFkYkmXw2cKXms40fEAiLjsfKPVYHDoFNibKnM/nR5VvS5REX50YMyLaukvE/f193N3dxYsXL+LFixdHL7u4u7vrssUQvXaw4c4zKvrayy70Qa5ZRaCCVxddk4c4Dy8j8nhbXXWtNHjbzNLXrHwt+cfWXa09XyePwUdljG2RaG1V9H/4wx8ePzFmyyCWf/LkSRwOh5jP5/H27dv4/vvvI+LYtdW2c+5Wy6JXoSETnVk4wGPNdd/aQ5wl8FT4fDxsw/F21nymFUEtA68ehq7rubi8mqzE/wTlxfng4nOz3WazOXr7kDnGnXMK4Npns1lcXl5232G+vMzN1ISeDqJh0fHDjQc+s778O5dNRQKyeJ7348y6Cp6PraLkCiGz8llSjs+lXoQm77KJRvge4GUiLHq8kGS1WsV6vY7NZhPr9bpbNzm29AW4/Xw2m8V8Pu+aiWr97bNjYJ3d06zpK8uOYx1JOI7DH1MpZ5Ze19WaZ4JnS58JPovpNctfq1iya4JHxNcN0UPkEDqsvCnjvvcVNCsPwUccz2MPS5Q97IC/U/FG5JNS8D4YpVbarg/9X2bi5zKzx6DXU1vPKO2ffUriV4/p4eGhc+fx4TfVmjK29D1kItPmt9Fo1C3H43FXEWD/iNMBKVlirZSR1t+y33EOrVCySiUTFHsVtePwsSLed8/NmjMhQByL701WvqzSwH3Kcg+acNQOT9m6seirZDE2Z4sx0EOHtqp4Io674apHUDs3H1fPkYmfBQtBQmwoS9atV0MMTTyyW83nx3Y4J86j8TpXInwMlEez8rUEpIYRmgishTHGon8ULFx02tntdul4dli20mAWFb0KrERN9Hoc9FHP9i+55CgXKgwsUXYOY7RprtQMh/fV4zs+Brwj3FeuMLiyyIRrV/7DsOgHoJlnWHjEkVkMnoleM9aZ+1nKXsOasjXG37wdr6uLzta4dq16zaUmu6z5bkglwJUnKgTMLsy5EoRN+n/g68sqP1v2Ohb9QDiOh/DxYUvOmeraMFl+eLP4uJTFLgkev4PMmsLDmEwmvcKoJdiGVAYlobOnoxl/Hk/Plj87Pv4npcFGFn4Zi34AbP3wMCKux0suVRC11yyp4LXpjoWfWfKsy20t869CrGXHS9fMx8ya4zLRs3eUDcrRZByLXqfO0g8632y325OeeqaORV9Bk0H8EPODqb+z65o9kBx3wwrz97rO2WtYbI3VtQ8AlwllLDUnZglLvn4VeOmjlj+z7lkCTkXPM+LgO94Pv0VEV/nW8hzmGIt+ICwgtkh4+DiuRTwP95RFj3XuvVeyvKWmORY8ewtZs1lJoNlxS4LhfVjUtePX4vrM7S9Zex2OzN1v0Xqw2Wy6fhS1fIV5h0X/CPjB5wdQH/b7+/sjK6/j5CFOWHkV4eFwKMaqpQSfjkbT46lo+Rh6bPUydJkdT8OBmvDZ/ddeenxf1dLzZ71eH4leu0Y7pi9j0Q9A3Xx+qHkEG1stZJ/VEvM64n4VjvbdVzFmlUdWwdSug8n6AWT7DRF76T6VRF/yEDihp4N5drtdrFarzkuC6DHSjt+ka06x6AeQCShrsoLl4R56EXEieG6bzkSA2V7U4meuPM/eoxWFVhZ9bn1fTFwSfc0byMTft28pJMD6druNu7u77j7xyDp4B1wBmWMs+h8IHlLulKOCK1l57a+P4+GD3zMxs8h1gkzOI3CM39eZZ2hsr4LWbXSZNe3pdtm5SoN8drtdXFxcxGw2i4g4if+32231f9Y6Fv0j0DZ1kCXHsL3uC/FyzzTNC6jwsT/OoeXILH0WHmiZ+O8h1j4Tbkm8mdtf2qfWepC5/vv9PtbrdTchJh+HK7vNZnPUuce8w6KvUBJLKVmmMS0vWUzc7JaJSD+TyeSoCZBj/yxnoDPyalPeEOHzUgUMoamHUqKUB+Dz15rceD/E95icFJXdbDaL8/PzuLy8jKurq7i5ueksvhN7x1j0j0ATZ9m86ipgFgb2h+CRxCt1duHvMQ02BqvwyLWIY9Fl8f8Q970kuqzyQw5jiIeTufxZWWvi1/vCcxIuFotYLpfxzTffxM9+9rO4ubmJ1WrV5USy3ostY9EPoJYtZyEDjUfxXcR765wl8LKEF++rXgPCBC5bRBxZY4iTKSX0VIy6T1YhcTmxH86plULmYZSSlCWLj/ONRu/ePISJMJ88edK580imYuoy7gtRS1S2gkU/kCyBxn3a+WEqWeuISN3jLLlVynj3wXkAPl4WkpSuk5ela+KMupK1OJTKqufNysLb8jEnk0nM5/Oj7cbjcSyXy7i8vIzFYnESEhmL/lFkSTMsI+oTPigQJx5GzKyrHkDN9dcPXF78jRAgc/FZBFlCrZSzUMGrpddOQuyB8Dn4PKVkYlaRcll5IlJ8FotF9+qxxWIx7B/bGBb9QNTS86y3SLQhG18SDcMVAQaPYDsIjLukcm+06XTa9frTufZ5Wi9txiuVKYuxsc7bandZLJmsJaGUSNTkZtZ7ke8JV6p8jXjn4Hw+7140Op1OB/9vW8OiH0AW03MiqZS1zxJ67AmwYEo9+3jJbdGZ2BHH6htwM9FrOMHXytfM22uZuKkR+2ReUEn4fE+5B2NWVs6NwLXnPg+YvHQ+nx+1irQcw5eu3aLvgW8cxMOCm06nJ+5xRN5jTSsHxPY8t9vDw0NXkcBzwKQd0+m0G+TDVl2tOwuexdFXPr5m/mSVEbv4uBauEGuVTpa8K41TyCrO0WgUs9msuz8RcfQyy1IfBfMOi34g6t6zpUcir9QTjLPs6g4j5ob4R6NRJ3IcG8nC3W53InRYOl3PrG3mLmvrQpZRx++Z98Hei94bFT7IehdyE6haes1voJvzeDw+Co1KZTfHWPQD0AcUVgWfiOimzcLYbt0X60iuReTj9bW5Cw83exkaN2svPIhHBafnzix9TTRs6bW5TvMdLHqURe+FWvmShdakIYYt41XiqEgt9mFY9I8gs2YQPVsozVzjw6PvMtFpfIxtsYw4TXj19crjeBpklh4eR8SpJQbaB14ri1rIgeOwFefyZZUYn5c/CH9ms9lR27yb5YZh0Q9ELT3H9BHRuZxqKXkiDZ38sdZGD2DFIAQ9B8rG5SxlwYFWOJmlL7XrZ/3uuaJRS8+eRymmL40U5PJySwH6ISwWC4v+A7DoH0EprtdEVvbBw43mN7jaPF9cRD52PeI4CdjnvmryMROQnoPDCrXEmgvQDjnqomuLgmbu+dgl955nB9KKEdtjDD2L3sLvx6J/JGqh0EBLMfoAAAQ+SURBVDwENzwTDbv32I9dfZ3DjtH4P8sHZH+jrErWpFi6vsyTKJ2HB7/gukotB0ArRk784Xe9DxERk8nk6L0DnFQ0/Vj0A1AhaLMURK+xNr/qClYeS17nUAAPLsfMmjTL3PMsE18js/J8rVjP3PwsW87t59zcWEusZa695iJw7Ijjlg7usGTBPw6L/hGo8Dmjzt1dWfCZtcfDDYvIwsd5GG3f13ZrnZEX60rJW1DRs3Xu6+DCrjgLHcdl1z7zKnAPONdRSuhFxNE8BBb6h2HRD4Rdek7iaVIOFQDa2NGphrvT6rzuvOQ2eTzcnADkhBaLkr/TpsAh14alJgAzwWfhC7exq9fDnsBQoWpyEqBCQEecvhDCnGLR95DF8OjyyQk5tcDac02ndtZutfwCDa4UdHJIWHZtxtJZZSPKlj8LA7LkHVtpFZQKHK59lrGH2LUs6jVxcjSrOLDtbDaLy8vLWC6XXZ/70otFzCkW/QDYwmNAB6zyfD4/cb+1PTvrS1+a310rAN62VJFkws/6APAyy8CrhVexlxKULFhO6mW5gFLikCsMXlfhs+ifPn0aV1dXcX5+3o2bt+j7seh74IcNQzeRhZ/P5ycj5LBU8WunlswDUNefvy+JvCR6TfzxUgUf8eGi52RcycrzPdEmv6ziyCoPrmTQE+/Jkyfx9OnTWC6XXV98u/r9WPQV4JbigYToz87OYjqdVqdbzjLtHAZwt9KSkJHNV4+h9NFz9Ln3IHPjS812WaWg4s+El5VHKxG17llFBNHP5/O4uLiI5XLZzYyrnYBMjkXfA8fz+BtxfZ/geV0f+Ky5LcvIZ2LO1vvE3pdAy8SdLXU9c7+zfbL7wPdX9y/lFVj4yK3MZrNubgNu2zc5Fv0A9OGDq1/q4KKUsulDKwT9PtsuO052zr7rzNZrf/d5Bn33gPetHUd/195/du2HY9H3oFYND9wQsUcMmxpa/+6rJIauDznnEIHUtumrHPrKUdu/7zfNLdjKD8OiH4Bam6Eu81AeK9Qfut3H4FNb077jlzwA089Zz4PiLk8FPqfA+viSZfnSQvvS5//KSW+ORW/M3y+p6B0EGdMYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjWHRG9MYFr0xjTHp+f3ss5TCGPPZsKU3pjEsemMaw6I3pjEsemMaw6I3pjEsemMa4/8DeIg6grIyJbsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 12\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 13\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 14\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  16\n",
      "Current iteration: 15\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 16\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 17\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dzY9b2bXdN4tfRVaxSiXJrZa7AwMBMo1nngbwmxhvmon/geDN3iT/xJu+fyHDzDK0AY8yzSCZBAG6gbYhC21JLVulYrFYVfzIQFhX6y7uQ94rqT/87voBBIvk/Ti8xXX2Pnvvc25vu92GMaY7HP3YDTDG/LBY9MZ0DIvemI5h0RvTMSx6YzrG4MDnDu0b8/dLL3vTlt6YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvzCfkf/zv5/GP//o/47/8t/8Vf72++7Gbk3JoYUxjTENeXd3Gf/3v/ydWm23832/fxqOT/xf/8p//44/drB1s6Y35RCzv17HavF9A+mq5+hFbU8aiN+YT8e8eTuOf/tO/j14v4vOz4/jnf/gPP3aTUnoH7lrrde+NacndahOjwU/Cnqbr3lv0xvzbxTe7MMZY9MZ0DovemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzrG4MdugKlz4C7Cn3SbjF4vvdHpJ91f29b2nB/bxq5j0X8EHyqsQ/vqZ/waf+97b9/+SiagkqgObauf93q9Vtco2z/bBsfs9XruAD4Ai74l+MFtNpvaa/289F4m0NJjs9m0+ozfy85VAsI59Kzv4e+jo6Pq9T4hZu3h42XHydrS6/Wi3+9Hv9+Po6Ojaj/TDIu+BRDUer2OzWZTPes2+pwJc7PZVI/1el09VqtVrFar2mv+XLdFe9AWPHAObVcJFnBJxJnQITyIEK9531LHhc9xzsFgUDuOihrnGwwGMR6P4/j4OMbjcQyHw+j3+xZ+Qyz6FkBgq9Uq7u7u4v7+vhIePsdzSdx4hrhXq1Xc39/H3d1d3N3dxe3tbe0Z5+EH9uFjoHNAezJPAGhHxaKCyCJiR8ARdYuMz4fDYQyHwxgMBjEYDGoiZNHzteBj8X6j0WjneNyO0WgUx8fHMZvN4uLiIs7OzmodgjmMRd8QtvK3t7dxc3MTi8Ui7u7uYr1e17YpWW+IFQ+IG4/lcll74H3eHsdYr9c14eM8aulLw5AMFrJa+uw9tsgqVrwP1AvB+SB6CB6Wm4/HFn84HMbJyUk8fvw47u7udlx9W/vDWPQt2Gw2sVqt4vb2NubzeVxdXcVisYj1el0TGQTJYs0s+XK5jJubm6oTwTM+VwvPXgLaop6EDivwN8gsPix7yaXnz7PtIHK2zIPBoNqPz83twrH7/X4l8MzSs4s/HA5jOp3GF198Ef1+P6bTaUyn0zg+Pv7k/+9/q1j0LYClv7+/j+VyGfP5PObzeSU+CBIibWLFVezq0peErS6zuvAly75vm30BvNJrCJLH9bDePFTg8/F4njsNCH00GlUdB7wFiP7o6ChOTk5iOBzG48eP4/r6Ou7u7qprYEt/GIu+IfyDhfAhZrjdm82m5rZD4Dc3NzWxs+iXy2V1LAgex+dhwr4IPrdP/1b2pdEgmpJ4sv00PgAhr9fr6PV6sdlsdoJ6GhDUjiOLyOM8GF7heuG6f0z6tGtY9C3QMTsLHGNrFvxisagJnzsJfnBgLhv39vv9HZFze5qm5iLqqcbS9jqO3wdvxxabXXx18/l78bAAbj0HAo+OjnY8mfF4XHUOfDzTDIu+JSx6FjnEy2N1BPtKgTk8ODXHwbeI3Tw2t0P/1jE676/tL3UUWZQ+uwa8PafcOHqP5ywLwGN0uPQ8lofVj4jaddlutzEajWI6ndbSdaY5Fn1LIBq16rDaKnh17TXVVkqzReQVZ6Xx9r5gHN7XIJ96FdiOx898jCwFyF4BBDsej2M0GtXG52y5I6Jm5RHAg/DhMaDN2imORqM4OzurhM/pQXMYi74FnLaDa6+uO15D8BA9u/Ic+EO6j8XX7/djs9nUhKwFKipKTbfx+JgFoVmGrKPhPLzul+XbIWBY6vF4XD0gfi22Yc+ABc+WHqLnTnKz2cRwOIyHDx/GbDaL4+PjGAwGFnwLLPqWwMojgr9YLOL6+romeLXyauGzwBxQYWsemlNiWg2nlXEsNhYvFwmx8HF+Lb7Bfpql4Mo6ttjHx8dVtdx4PK4+446Ix/IQPHcQfF6uSdhsNjEYDOLBgwdxdnZWiT6LG5gci74FPJ6/u7uLxWIRi8Ui5vP5juhZ8Le3t9UPNwvIqUuuQmcLqG4zXvMD22pATb+DihdtiYjKeuI1Ojt8D94X2w8Gg0rsEL667Cz8LICnwT9273H9+v1+zGazODk5qbn3phkWfQt4PA93fj6f71h6zsezS1+yqvw3i5QFw5YTbjOeuaiF3WQtcOGSWK3jZ9gFB/jeXIfA6TK0G+2C4NGezL1na8+FPVrCq17J0dFRTCaTOD09jdFoZCvfEou+JcjFo6BGI/QctOO8OwTCcBAMFp1LWllA/JhMJjGZTHY6ARaZegAqehZ+KXiIqLimKVn4XBSDc3FnpFYex80m6WAIkBX1cGES1+A3ce1dtFPHom+ACgWWHoJfLBa16juejMPlskwp1cWBMBb48fFxnJycxHQ6rb0HD0CDYVoDz0G/rMCnNNwA2UQhjk9wHT0PMUqz5ThmUJpVh7ZoO7EvOgn+P+37H3aNUkdn0bcAPz6uxuNxO5fPZkEyRgtT2F2HqCeTSVVbPp1Oi6IvCV7LYQ+l34AKXouSdILPer2uZQ3UTWd3nR9NqvGyVGNE1LwBtC3rrMwuFn0LsnQdF9xg/I4fIdAfYZajVsuuQsczi55d+2w6qo6huS37qvhKBTk6PViLidSCZzPz+ByZ8HU/bQOeNcCI9rHnYHIs+hZA9DwLjktw8TkLSceb6gZDuGzdT05OaiJXwatb30TwJQtYqsjD36WCHq2S45r67KHs27apxUY78LdO32Uvo4vu/dOnT9P3LfoWaEBLS2izqDzcTrzP6SrOaavYWegq9mwc30TwTd3eUuegwi5VEeK5ZKn5eKitz9rAx+J9slJoBFWvrq7i7du3sVgsqpy+ejdd4be//W36vkXfEA3ksTvPKa9+vx/r9boSX1biymNvDtBB9IcCdhoRL7nSTURessIlSlNl+TkTezYuj3jfKe5z71X0nDa9vr6Oy8vL+Otf/xqvXr2KV69exYsXL+Ly8jJWq1V1jbom+AiL/pPBRSpq5TiYxfAPWAN3GL+r4I+Pj2M6nVbeAIv9kPXOAnQ8DtYgnb6XUQr66XFwjbL9uIxXU4Qq/Oz74Tiw7ldXV/Hdd9/F8+fP409/+lM8e/Ysvv3223j16lUsFotYrVbFSUPa5tI1yNJ9es1KKcGfwvEzLPoWqKVhlzeiPOmF89Oc0iq59bDumWUvRdU5es2fZxazyd9Zx5Cl+bTj086BhZ4t3snnLU304XYge7JYLOL169fx5z//Ob766qv46quv4o9//GO8ePEiFotFVUNgdrHoW8LBOg4WZRNd9O99ATwW/GQyqY3XcRzu+SGc1Wq1075S8K6p0A95D5ng91n0bBVfXQWodG49NgKpl5eX8eLFi/jmm2/i66+/jm+++SZevHgRV1dXH/Pv7QQWfQvUvdUUlZaUamANzxCzVtjBrcc8cV4UklNUvV6vNuOMRcER60Pj+izodsgVzix9Zvk5rZctDqqlybq4B4tcO7nb29t48+ZNPH/+PJ49exbPnj2L7777LpbL5cf/kzuARf+BcOotImqpM4iWZ5dxkQwvAqklthi/69LPEXVB4Fjb7bYWPCxZ+dJYvIng+Rgli66pPBa8LhLKz5wB0f2z9QawXNbl5WW8fPky/vKXv8Tr16/j5uYmVqtV43Ftl7HoWwJLysU1/X6/VgfPgTcIWKPTKnydf56VmGYBMC5G4WFANvbncXbEbgwCfzNZhD5z31moPDmHMx26pj8Km9j6Z+v5q0dwf39fRe0vLy/j5uammoFnDmPRt4BFxqKNiMpKc06dl3PSIJUKHw+9WUTE7sIXGt0t1bdnwbRsiILnUvAOz9lYPhuv83qBELIKnasZIXyeoMQLhHKngnNi7sNyuaxN8TWHsehbwGJl17zf7+/UyaNMVu/2wsfSMT5PVGHh4gfNP/5S6WvEewuObbIKOv1eSilAh8+4E2Jx6iw8rlpkketKwHozj2yFIe7E+DxaBWn2Y9G3AOLiINzJyUn0++9uunB6elql3yB6Xrs9oi4mHipowU0pis33tstcfZ0Dr+NrDZplZGN2vJ8F6jLLnj0wji+597DuOkzIUoJaL2GaY9E3BMJCug2LOGy32xgMBnFychKnp6eV8OHeaxlo5qJnM8yyKjSOYPMCFloPADJharQd5+Bz6flKkXlYXLjjmeDVC1Drz2JnV760WCi+V+kzcxiLvgWIwo/H4yqvHvGuyg6CPz09rVJvWNIKAtbxLwfUsko0/aGriDNrD1icpdV3M7GrqDWfnrVDy5I1JZeN9+EZ8Ps6HTmr4OPvV/rM7MeibwFbeogeHQEs/OnpaRXIQwQeAtYfvkbjGRUi3lPB8VABx9Egm0bE1dsoiZ09gyxfrmPrkuCzYQYq5vQefVkdgEX9abHoG8DWl0U/m82q1J3Wzet4Hj9stsjZIhul8auKsiR6oFZeg2Mc8VYLrgLV8ll2wdXSs6CzDiNL7+EcaAu3yXx6LPoGsLBg2ZGew3ucpkO+nWfaoZKOrTD/qPdFyVmUvO8+1zdzwbNiF24PeyOlgBoLuVRlx0OP7Bz8XsmKZzEKwJkLFCjt8wZ0qNR1LPqWcH59PB7HdrutinP0nuooykGHsd1ui4E6tnA8pj9kbfeJXi1r5qazCDPry+fmrEHJi+AFRZoE3DSGwSIubc9z8PnalrDg6+wVvS/WO3R8DTd/OBzGZrNJ14U7tFqNCjPinbuvxTVajqpW/pDo1XPgbZuIJROsdlL8fgnu5Li2AN9Zj6HXTYOUvD7eIa/B1LGlP4AGxdjaadmriihz1bMKNog+YtfywbXO3GfOuWdtzjoEHBciQicD8WE4wsJkC8xi006K04/4jPfl/XgfvNbtStWCEbFzDExCsvAPs1f0nrzwDoiTb1bJwSq4myxkLpbR/DqCXjgOOhGdGccdBd9gQjsfoEMGhYWl2/Z6vbQDQXs4JsFiv7+/r4kTr7OxNjqhwWBQ83I47oE2qeCzGoTBYFCrDcC1RrET1z6Y99jSF8CPW+83P5/P4+rqqrrBBbun3EnixwehcG151nlAHDqrjoNmpbvlsGeQeRuAhx14n2sFIGy13PhMxYrpwxDcarWqdXLaibAV545Qx/98HVjwfD1LAcVerxcnJydxdnYWp6en1W2v7P6/Z6/ov/766x+qHT8JWGxZdRkLFvXicF+Hw2Htx8cr3eDHqftDxCpeLaXlMb0KHu1WMesPPFuoM+JdYREPByBytpxcnMPbok3ZXW9KNQg8XMpSj7yPDhm4Q+QOieMpk8kkLi4u4tGjR9UNLi36OntF/4c//OF7dfHZjfsxj68/NHancQyumOMfj06V1dszR7wXLtebo9PIKvPYxWeLqBVr2IetPEe2szE9dyiZV8Fz8zVoyGRDFu2UgI7J2UpzcY5WGGalybqa8Gw2i/Pz83jw4EH1/OjRo3jw4EGcnJxU97qz4N+zV/S/+93vfqh2/CRgAUCQEVG7EUXpbqx84wp0AGxdWfR8r3oWh968EW3JUnRaMKQBM+yrFo5n4mVeBWcjNHKvFluLdLgT01y6dmSlGgI9V5YNwYSns7OzePz4cXz++efx9OnT+NnPfhaPHj2K8/PzSvA6RdlE9PZdiC+//LJzV4mDVRFRBYUmk0nMZrM4PT2txotYy45nyvHto2F10YnozTFYGBCvBp9YeNxBQAS8LBfvp644fz/2XDTIVUoFapQebdts3pfSqmvPYlXxlfL8nMnQc6P9w+EwZrNZPH78OL744ov48ssv4+nTp/Hw4cOYzWYxmUyqFY06Turm7r0yz58//36a8ncG5s5Pp9M4OzuL8/PzqgNAoIgfunIt3Fh+hjh0fT38zcG5zFrruvrb7XZnnX0VPQccIXj2LDS4B6uv42rtWLSGgAOC+D46POI5ATxRp5SK5CzDaDSK8/PzePz4cTx58iSePHkSjx49itlsVnPnnX3KcXfYAP5Rsqt+c3NTBYpYRCoMDcbhfVjA7E6vpR8sCx6LYjKcQgSckmORZzeMxPYR9QU6sjvLalAvs/LqiXBHyMG/bM08PT7aNRqNqgj92dlZzGazmE6nVQdsd/4dpd+QRd8QWKflclkJ6O7uLsbj8cGpsRC95qHhqmJIwLenUiFG1BfjHA6H1XvscmuBC7efXflDbr4KXlf45e+oNfV8bL3lFrdHaxYy4WvcYLvdVgFTXi5cbwJiyrg4Zw+ZFb27u6u5qUht6Y9NXXMut42or2s3Go2qNB86AQ3osQh1vJ3lshVuD7/Hwuf32KVnLyRblpsFn1l5vjMPxyq46CkTP4/5uTAJx9TVhkwzXHvfEFg0FKHc3t5W1koFw/tkgTEWFESM4heky7S8l4N9PEZHag1lqTi+knkO3Gb1GDjWwPfe404pCxrimLoMmIqTYwHj8bi69fdoNNqx+jykWK1W6b0EtP2mjN37lrDQ7+7uqjF0xOGFMDQfv16vKzedt4f42XqxYFBLoI+SsCPysX4meA3cZeLfd4stHRbwPjgmtofbzp/d3t7uxA/0Wrq89uOw6FvA1gwRaq6zVzTPze+zAHq99zXrPDZnC4YxOYtKc+loUzY+b1qRlo31ueItEySuDeBhQRagRHs4ZanH0WERFyZp52Yr3w6L/gNQCx4RNfeat9G/I6IKBJZy8ZzfZwHy2LnUDryvZMLSz9Vjydx+bg+/n8UYOCWoAUNsj8IidBI8vNFsiLrxFvmHYf/oB8I/0I8ny0qY9tjSfwClsTA+4yGAWkDAVo8tGI+pM8um1WmZ1ctSffteR9Rr7/d5EjqMyIQITwWuOV7j2rB7zyv16LThLP/P+1v8H4ZF34JszI0gFD5nDgXykMfWm11ooEzd5azgRTuKfW3fh8YsIExeGAPH0QIgDuRpxgLR+iyQp3e54SnIWpuPtKcOZ/j8Zj8WfUuQNtMa+yxd1jRlx/exQxmpRuvx4JRZFlgriZvH1to+DVDq90WqjMXeNGUHa70vZQex4zZXmrLjvD1En5Xqmma4OGcP6ppz+gqr3vLa9ip8FpIKnyvdOK21rzhHi2W0A+DAmVLqDDTyj4euypOlzPh77ivOyfL0PLVWb3fFxThZcQ46DHb/be2b4+KcFqB6DiWg0+m0Er1Gp1UQcGXxnlpuXUk3c9PxHoue5+6r16H/PxW+Zgy0k4P4udNCjQI6FwhQMws8fMlKi1X0at11fK/1+LqdrX5z7N43BALFTSvPzs6q+fWaXspq0zlQxRbpYyfcZDXxHDiLyBcT0ThDlvLDd8CYPps4o7n0zNprh6Tjebb02XXSCTfb7ba6VfXNzU01IUrTpl2ndC0s+gP0er3Kuk+n0zg/P4/z8/PqvnW4kw0H9WCtgc4dZ8vE4189DlDXlffhjoLdZ1huDSDy8TgoxhFx3YeHFlowpMUzLE4OPvK+ODdPrWWrDY+Ivz+3c71ex/X1dbx9+zbevHkTs9ms6nwjojY12eyyV/RffvnlD9WOnxQsCFhg3Ip6NpvFbDarbketi2ioOxvxXvS8Yg6m6UbUha8BNx2vsqA0sKfFL6W0Fou69FlpUg+LiRfR0Flx2Ic7DPYOsvX1NDrPmRI+3t3dXfXdEQRFJzebzaqO0+TsvTK/+tWvfqh2/CRQkWL8ikU0+IEfmwbkOBIPkbDomyyXxRaRRVhae04XqQC8oEU2ducAXuZKa4Rc4wE87ZUXxdRlr7KswaHlsrAvD5U4psH7YW2D+XweDx8+rJbLwvz6rlL67ntF/5vf/OZ7acxPGeSY4XLy+FR/uPxjZMHrwpjb7bYmeix/jRs+6kozmTU9tDAmP6ulhahxPDxnY/Os1j3zDHg7HpuXOic889AC+2pMANuy98LDmqOjo1gsFnF1dRVv376N169fx/Pnz6uFMR8+fBgXFxedXxjzl7/8Zfr+XtH/+te//l4a81OFBaBLYKMTWC6XxSWwMfZHJJ4ttq6GC+HrEtjZmLnNEtgRsVNVx7AYtbiGxcfr3XFQTUWLbdlNLw0PcB5cD3bztWPhDktr+HkbjYVMJpNK+A8ePOj0Etgl0e9dGDMiunWVCPwg2Trf3NzE1dVVXF1dxXw+j+VyWQ0BsJqLLoGtokfHwctgs+g1AAXRl252AfZZU7aoKi6O3nM5bFYSmw01NI+ut6nW35fWLrDgeZGRiN2CInZXOZ7A7ej1elXsBYFWneTTFX7/+9+3Xxizy2DsiAAdW++I2LHO7NpzRB/utt7gklNasKSZ6FHNxreLKhXQ6Jg7e0/FxWN5rYNn4XOOXAWPzlE9BLWu3Amo6DXPj7brg4+Fc3JwdLvdxps3b2rBVB7yGBfnHATuO6rw7u/va5V4mtLS9BtcUA6OrdfrGI1GEfE+hqCuOs4NYejYW8foSpau4n0zd10Fz8MKtt5cWMOpN05H8pAA58azBgqz4QN/D/Zi+HtkN/Xcbt8V7pgytvQH4HGyRtfxg+WcOIsNAmaPQOvlOT0YUZ99p7l0WH21olnnzOdmeB9Nz2UC1NfqumediFbo8RAiy0hk5973v+C4AHsjNlLNcO19QzQSzhFrXgCCf8TcGWTH0jSburLciWCIwDPdSmNVFjbawcff11loO7nTyq6Fvl9COyntHDhGkVl8hffJYgemjC19S+BWYlbYcrncmfbKhSiw5uoeZ2Nu7QRYJLqCzL4Ive6HDgOvMWTBNogPIFCGslvQ69WXBUOKcR8oieU6gMwaq8DVcyj9D9TLMM2x6BuQpdBub29jsVjEzc1NLWDEouWVa3m8XBK/FrLoOF9jBJrCYliYKiIemuBzHYZoaa3epnqz2aRDHm6juvDoXHBO9RQYHRZkn2fBP3MYi74BLBoW/Hw+j8Vikd5pZrvd7uTqNUiWWfzMZdZgIVtlziJge7RVOyKOZK/X66rdLCB4BNpBafAti96PRqOd+9KxC86dCNrKQTd4E9z5OOr+6bHoW6Civ76+juvr60ooEe9FiAg95+qzareIfE36rBNg4fO+vB2LHueDNdYJLWpJS7l4DrCp6HkiEafOslw/b9/v96saes5O8LAA8Qhb80+LRd8Cde3n83nM5/Pqh8ku+/39fa02P6Jer84Wnl3dUskoj+Wxv1anqavPnQx7F9lYWIN/3HmpK80dAlt6LdTh3D1X7mEaLeoPsB0PXdTqcxvRWfH1cqfQHIu+Iere39zcxPX1dczn81qwjifXZOW4OrbWgp0sSMauOc7FUXgdAgB1q7OUHPbX76mWnT/T42rFoAo/WwcPFYk8LID4eWjBxTvaBnzG18IcxqJvASwfR+6vr69rlp5/4Cji0UUxIHAEwFCog88iotZR6D74HO/z2J0/i6gv1ZUJns+p31WFphHzrDJP5yzwvIVs7gHPOtRbVuusPcQC4GFosY5phkXfArYwLPyIeo08RM93ouXyWQgU03Ezi5u9huC1Qk3n0+tswFKKS4+j58tEzwLTcT+P2XWsD3FD9Cx+vVU1V/ix8Fn8mE6L9rk4pzkWfQvYhWcrpmNddAio2YfAWZS8xl1mpZBTB+zC47VW+fFstJLLHvF+Wi2Ow8crfW8+DncemavPnQALGQJn0etqt9phcPAR4r6/v4/r6+u4vLyshkSouzeHsehbgh8e/6j5B8lrtsOSq+hZ8OPxeMcC8zMLPXPps2WwdU4+H5NpInj97pmrr0MI/puvES9+qULXuIN2IHzc5XIZl5eX8fLly6qmAMc3h7HoPxD82OF+YlFHrOqCu69ivTZeVBJu/3g83omo49jI8+9bSIJn7nElIFv7kphLrn1ba6/ZgCzCD1Gz254Jnc+lnQlnE5bLZfztb3+L09PTaniE6+jJNoex6FugOXMIga0QctBaQcdCxU0tjo+Pd2aIqZDgKeCW1hwP4FVweWZfZu331QHo5/sCeyVrX4r6s2ekD84MZNdYz4vtb29v4+3bt3F+fh6TyaRWYWjRH8aibwlH0LnSLiIvlOGHLncNFzebWsoPnsaL46t7ryvisugPCfvQ5/ui+NnQhP/OLL96NvydNHbBsHd1cXERs9msWgcP1+Lly5dxfX1djfE9zt/Fom8BB894mWW2+KUfGrZlS88r4OhDLSELPWtP6ZGJPhNUW0uP9/gz3jbbL/MK9Duw6EtWf71eV6sRj8fjOD4+jrOzs3jy5El8++238erVq1gsFnF/f7+zCq+x6FvDrjX/ODWSrcKIiFqHobduyoSvYsL+Kh6l5GkcEvu+95jSOfG+VgZmnoK2tUlnxZ0HB0NPT0/js88+i1/84hfx6tWrePnyZbx586Y21Cq1u4tY9A3JXHReCw/17JxLVjcWP+5sHK+dRmbt+Rjs3mOOPZeksiXdR1MhZMG1zL2H+JsMKyLqq/k2Ff12u63+D+PxOE5PT+Pi4iJ+/vOfx3w+j7dv38Zisai2a5KZ6BIWfQs4L44IPH582ViW6+xZCNohaJWbpq50OyWzpLwCbJbC0331e+I5i9pnY3PuYNQ9L3kT+4Yn+/bDd8L/YTKZxGw2q64ft6cUH+gyFn0LYOmxACbSbggabTab2uIWEXm1mC7JnFlRrnDD36VpqngMh8MqbViq0tPxLT/vs8hZJJ7bi324Y9wnft42C15maFvZ2+HvqbcFM3Us+hZA9BhLHh8fV6KPqAeaUGzoCsgAAAbESURBVDTC7wMMBQD/2CEoLUXlCkB+8N129LZamsbDd9g3xsY2/Mxt43JjnSLMUfR9dQMlwZfakAUPWezZYh6mjEXfAvxQYeFxiyvODWuaClZJf9RcjML7akELV/ihVn25XFZ3zOW19ln8eq97FoNG00u58kz0WiILSw9xo1MsnV/nILBgMfc/E64OI3isrm68A3bvKHV+Fn0DWAQcQMI96mHZs/TSZrOpqvSycX+v16utosOiZ4sOwfP99JCyYtHzGv18R1sVhWYaWCil2XoseK6qwzViL0g7IC1WYtec71DDn/G5OX7Q6727kzBSoPp/Mvux6FvCln4ymcRkMqlFzzXq3Ov1qmmgms6LqE8L5bvdYBGO1WpViR21+nigHZnYWXAq+iwuoBmGLB2pE43Ytcd10TYiw8HC12FAVl3I4tWg5tHRUVWJh+9rmmPRt4Dz7HDvT09Pq2j5vmq4o6OjuL+/r/LsEbtFLGzt4e7e3t7GcDiM5XJZEzW70Fzll/3NomcB86QWFj1bY+4otIaeYxOw8jzs4c4JomfB8zyErL24LjxxB9f69PQ0er1edQ7THIu+BZqym06nMZ1OY7vd7lgqHq9C8LwUlAawNNcNkcFT6Pf7sVwua+fQAJa+1gk7OE8pJcjfUcfNGrlnK8+uPUSP58zj4HkI6plwm3FevYsNSphRmIP/gWmGRd8S/FgRvZ9OpxERqZvKAuWVYbDOHcQTUQ9UcZAPxTzsPUCMbImz99XziNgdz2fFNRpsYw9BYwHs/UDEauWz2YJ8n0B4ThoDQHt5WLHdbmM0GlWluA8ePKi8FdMMi74FGsyD8NnSq8XHtsvlsqrcY/eYRZ2V12Y/5ixgldXk7yvIYRFrcU2WYuP9ssAfPAsWMK5RaXowrg0H/9grAFqngIVJLi4uqjsH29I3x6JvCVs2BK0g+szd5o5gOBzWVoHFA8KPeF94cqhYRfPWEfUOQotxeD925/flx7PUWbY9BL1ararvti9lyMfOXHye18BtRrsxtFosFnF7e1sbLjl6fxiLviU8rofwM9Gr8DlYBVcf2/C672yF+bWKVT/D631oALG0vbr2Ta5Hr9erLPJwOKx5Mll1HFv7UkAPx9YhyGQyqQSPjIdpjkXfAi0qgXWKiMrK6YNz1ngg546Ogpd50oIejGnV8u+z2PvEf2g7tsaHxMTXQ6vrUJHIQwQ+Hw8lBoNBlaXQKL4OL3A+DiQe+s6mjkXfEA2Ycd097vOGwBzKY4+Pj2uLQN7c3Oz8ze9hBV1ePw6WLCumgRVUC/6hlWlaX5B9pq85eMhuPL+vaJYCRUr4fgh0spfAFX1aA+DS23ZY9C1gwU8mk1reXSekZItBZstAo6yWH3wjCBY/59Y5f60R+YjdFWzAvo4gC96xcLVT0Eg8F+Fkk150OKKRfy0ywrXmAOBwOIyTk5P47LPP4uLiIk5OTqrAnoXfDIu+BVyYA0s0nU5rRSrZTDldFZZXg2XxZ53AoTXh0cHw+dj11/hACRaxWlgtNoK4OI6R1fxruk/bhWNrBJ9TfZrfh+gfP34cn3/+eZydnVWiN82w6BvCqabxeFxZnWxsqSkx7QjYYusMOvYG2EtQ0e8TfhYDQNv4Gd+Lv1/mnmtlIXcMSNVphSCPx7PrgXOymLN5A1qPjzqA2WwWDx48qNbJs6VvjkXfAhUD3+oZlKLrWQCOC2S0I+CyVy6X1Yo4/VstapvINgu65OrrI6sE1AAcXwv2OkrHKB2Lhc+Vf54/347egWCPQ6ICW8tDOfTsdWZ1mzy0cKfJZ1lbSrCw8cyizf7OOoFSUdC+9hw6jrZNJ+7YyhdJL4pF/xF8TJqoaVpNXx/qQD62bZl4SoIqdQr6um3H07QdWedialj0fw80FUiT7T40ZfehtNlf04vfxzmMRW9M10hF7+iHMR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOsbgwOe9H6QVxpgfDFt6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdIz/DwznD4alkpvxAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 18\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dP48c2ZXlb/7PyqwqVjUpNin2Ogusu/LkLqB1hHHH0RcYjLfOfIlx5yuMud6aEiBr3DF2ncUaQkNoiWg1ySZFVuX/P7UGcaJOnLwRmcFmNzmK8wMSmZUZGfEiK867991734vO3d1dGGPaQ/dTN8AY89Ni0RvTMix6Y1qGRW9My7DojWkZ/SOfO7RvzH9cOtmbtvTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Yz4i/+t/P4+/+5d/i3/413+P17P1p25OyrGFMY0xJ/LyZhX/9D//T2z3d/F/v30XD6f/L/757//rp27WAbb0xnwklptdbPf3C0jfLLefsDXVWPTGfCT+0xeT+Mf/9p+j04l4cjmO//Hf/8unblJK58hda73uvTENWW/3Mex/FvY0Xffeojfmbxff7MIYY9Eb0zosemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGf1P3QBzz5E7CDfa7tR9KZ1OeqPTj/b9rF1Nj/lD29h2LPofwIcKq+57+hn/fey1Pp/aThVRnajqtm0ixru7u6PHzfbX6XSK8+l0Ou4APgCLviEsLDyyz7O/q8TJ+8Jjv9+n71d9pu9lx6kD4mEhVQlat616VP1u2bHx6Ha76X74udvtRrfbjV6vV7y2+E/Hom8ABLXb7WK/38dut0tFxttWiZYfu92ueGy32/RZH/v9PrbbbWkfvE8cJ2sXo6LKRJd1CNiu1+tFp9OJfr8fvV4vFWL2GwBs2+12S/vI9oXjDQaDGA6HMR6PYzQaxWAwKNphjmPRNwCC3263sV6vY7PZFGLD58fEDaFut9visdlsYr1ex2q1is1mE6vVKtbrdemx2WyKbfl7eM2dBoteOyS0VWFxqcgyy85CxWMwGBQChGDhjnObdrtd6Zj83eFwWLzGfrGvXq8X/X4/zs7O4uLiIq6uruLy8rLUVnMci/5E2MqvVqtYLBaxWCxivV7HdrsttlHrjY6BRQqR47FarWK5XMZyuSxer1ar4oHtWeTaaeAY3AYVvp4PyFxnvMb7mevNoofYIVoIlY/HHWBElIQMwcNyj0aj0n6x7WAwiOl0Go8ePYpnz56VvAy7+adh0Tfg7u4uttttrFarmM1m8e7du5jP54Wbz9Z8s9mk4sYzHhA7C365XJa+i85DhwLq0vNwo2rIAdTiq8DVrWcBZxZ/MBgUzxBynYuP/cArOGbpsW2/34/JZBLPnj2LXq8XZ2dnMZlMYjQa/Qj/8b9NLPoGQFibzSYWi0Xc3t7G7e1tSZDqrmeCZmuu76nYedzOrrG6zDpWPmbdq4J7VYE83QbPPCbXcXi/368M6EXcxwUgbAgef6MjYQ+j2+3GZDKJwWAQjx49ivl8Xvz+WUbAHGLRnwhbTggfQoWLD8HDii8Wi1gul7FYLIq/2crD8vM+eF9s2XHsqoi9tjOD013HzhPbZiLSrEPVcfb7/YHLrR0KdxLagWAb9kq63W7xO2HIUxWnMDkWfQNYbBA+B+D4b4z58WCLjm3YK8BrHvNG3LvAeI/dZbjcLL5TBFAlVj6mjunrtlWLzW45xJvl4PE5B/L6/X4Mh8OS8DU2gf2jgzDNsOgbgguQrTq75Sz42WxWsvQQPSyVBvo4AAeq8t5oS0S90FUUmsbTMTY/IxrOx85Sfjze1mi+RvL5kY3nh8NhaRwfEUWsAs/j8TjOzs6KbU/pnMw9Fn1DWPQscn69XC5jPp8fWPmqwFwWdY+oH1/X/V1V4AJwDK0z4GOyha4LxuF4COL1+/0YjUaFIIfDYcniQ6DsFbDg0QFwZ7Xf70te0Gg0isvLyzg/P4/RaOQcfUMs+gaoaw+Rz+fzUlAOgp/P5yXBYwjAY3Udn0eUrXOVhdQUWsS9y8zBL3WvtcCIg4FVeXo+d+4s4DWoxR6NRsWDLTe3jb8DwXMgj4cu+L1RjzAajeL6+jouLi5iPB6XtjfHsegbgrTder0uXPjb29tC3DqW54Adp9qqUmvsUrNV1Ko1fs2uMr/P22JfLHIu5GHvgjsMFh8HF+GdINgHiw2xo1oO+XYVvo7l2bXnqL+Kfr/fR7/fj6urq5LobelPx6JvAFfkwcojbceih7XnyjpYKQ7UwbpGHAbPIHQeK3OgC685L65FMpz24qAYzkPFy+2AkLrdbvE5zoHTiRpcg9hZ9Gy9VfQsfE7XcSfFFYz7/T56vV6cn5/bvf9ALPoGwELCtZ/P5zGfz0ui12IbdunVOkZEcRFrBJzdZbagqFrjZ7aW6BTwmoNpfEyu10dKEHDqjKPnnJZky4vv8Hi+zr3PIv384OEFD6nQ3m63WxTl4PzM6Vj0J8IWksfzs9msGLvzuJ7H8GoVsT8tbtFS1sFgULKciFrj9Xg8Pihdrapq03x5VsUXkZfccgwA58RjbHwPIubOSOvn+Zx1co1ux54Jt7Xb7RYTbk5x7V20U8aiPwEed+PChys/m81KY/c6wWtqjC92dnN5XAyh4zGdTovX7EJr9BsdCNeua+otK/DJov7c4WW1/0An4Gg+PetQsrF+VkPP7eQORuv7j/0P20RVR2fRNyCz9GzZkYPnvDusE8A/QmepsbvOIocbO51OYzKZxGQyKYke1l4Fr9NU69Jv+FvTg7otXHyd0ceFQyzebGostuPsgM6N1+21vewt4LP9fl9b02DusegbANHzpBkuB9WprYBLWrNKNAgeVh3CZrHjGe9roIxFn0XuM+uZDTfQ3uzcs/n/XCLMHkxVSpFRd79O9DiGeks4PtrGHY7JsegbwC5uNtc9c+N7vd5BHpxdegiXLfv5+Xlh1TMrn43ndfxcZTnrhI828zO2YWufPXQfVRb3h7rZPM7noYW2jX9/fKdtPH36NH3foj8RXDRw77lmHkEuFftutytE3++//6nZ5dZx+3Q6LQTOwucOgdNhWtBSJXi28nWuL3+mosezFvTwWFutMH+/ajjBglQXXocjvA3XC8DzQibl5uYmZrNZRMRBzr9N/OY3v0nft+gbwONauPOZ4NltBRzE4hQbBH9+fl6IXi07PAHNe+u4vcpN1jYo+l72N1cLdjqdkjWtKjTKhKqdBP8udTEA3hfEjnqId+/exevXr+P777+PV69excuXL+Pt27dFp4tag7Zh0X8E1MLw+B3WPZv8wm49XHsIfjwel8TOgsfnmgLTtFZdezOLDdQC8t/HgmFZoC2z2roWgJb/8r6ySkBtI/azXC7j5uYmXr16Fc+fP48//elP8e2338Zf/vKXePPmTcxms9jtdmks49jvUfcbNvm9Pof9Z1j0DeDUlV60EffLP7GF4qAW5+I5166i13F7VqmWReFZaGgPR7X5eyzQ7OLS19mx+L2IclpNxc4pvqqAp9b+8+/OswPX63XMZrN4/fp1/PnPf46vv/46vv7663j+/Hm8evUq5vN5qXDIlLHoG5KNXyFEdbE1HQVLj7E4j+U5cAdXXgXPQsiCaVnwrUrwdc/6GvvT89eVe7Q9nNrjdf7wmi1/3W+tE31Wq1W8e/cuXrx4Ed9880388Y9/jOfPn8fLly9jsVh84H+2PVj0DclEn1WW8XhbX3PVGtx4LrrJJqpwSSwPM1ToCBzWWXl+fexz3reef53QeWFQXmuAC5g485EFCLl0mfe/Wq3i7du38eLFi/j222/ju+++izdv3sRqtfoR/uN/e1j0DdHAE89yY8vMATcVPrbNqu44WKc18+rmalAM1jAb81cJns9Jt1M0is9i1Bl4uupvNgtRV/vNin80DoA6iZubm3jz5k28fv063r59G8vl8qRYhLHoG8OCR0Buv9+X5oRrlZyu3c7f1amodS69WlieAQdRIJio88th+bOMgr6uIkvdqRvPE3J0xV9MUJrP50X5Mpct8/qA+tBJQsvlspjWjErINkboPwSLvgEQvK72EhEHVjuz2Dre5znoWlHHQbuIQ7cabWGx9/v9wtKfWohziug1Bcdj7Gz2nbrysOzIo+O1LjKiqwDzuoE6toebj+3N6Vj0DeA8O1fSRcRBrTw6gGzCCwSWzYPn6LVG6LNUFwufy1DrClv4fLJnkOXbWYBV43Z25yF6Xk2IHzoFmQN8auG1HbwKka386Vj0Deh0OqUc+2Qyic1mE51O56BOHqJXN12DgJ1Op2TdtYNQl16j3d1ut7DumHWG/DTI0np8ThlVqTkNsnFJcnYDD14GvGp1YLbYWdETd3R45iW7LPhmWPQnAoEiSIf0GgTG5bMQPSLwPBuML2a46dnYXZ9Z8GzZuCgIUXudgZal1+pAp6Lf4XYgyIZpxmrdq27soTf44FRednOPqjZnno85DYu+ARjPw8pfXFxExPv8vBbYwLVH7TcuUo1IR0SlK8/f06AZdxpI1aGNmaegllEtPm+rKbLMwvO6/xAwj9GxLHh2M04eBsBTgLvObc3c9qqhijkdi74BcMWRV7+4uCgsLdfPo6KOl3K6u3s/K6zX65Vq9zUFlwXUVPRs4Th3D/FrsYt+V1N/fHxsz14Fd1IcZNNbd/Eju9suXHieqARhcz6+TtBcSWg+DIv+BDg3D0sP0Ue8n8ml8+ARjecFHlnQmeAZDBvwvgoPEWtNzel7PKTQsbKO2bVz4ZJZTctx/p0XFOE7/nAkXnPvnNdv6qKfUlNgqrHoT0DHz7D2k8kkIt6LjAtskH/naZ282AQH2tTCcj6dxamVbtph6BRSHRpUjZfVpc+KbDh9lgXvNCi3Wq0K918r66qWD0N70bnyOSg8LOJahSrsHZSx6BsCF5/TdZ1Op7TcFa8Ay9M61dpzYAzbZFNLNUUGIfH2uqCEij6rbtMAXV2hDYueK+04QMfjdF5ngGMQmfhYvPg721Z/D5zzMU/Bgi9TK3r/WPeoZULqDhZc8+x1UzrV+vKMMM7T89BA3W8NaCFWgH2w6LOyVhVi1ibNnfNKuByM02Bd1TE0VYiaAi4oyoY6EYfDmO12G51OJzabTTHfwNfradjSn0CVleW12Kpy6/j7mCXlwFzWaajwAbZl4WtnUSd63S9H5uHG82u+cSd7AXozD428qwuPzlILjOo8Af59+/1+rNfr6HQ6sV6vI6IcJzHV1IregZL3QDicU2brzBYVlgvj/4j7TiMrU4WVVNFH3N/iio+B1xFR6iDQyag4so5GMwAawENmQcfw3ElVdSKAYxIaWMTnOrzJ3HmuXuSOY7vdxnA4jPV6Hf1+v2gXfkOuhMyCnW3Glr4CFTrGrrPZrLgFNawdW0x8F+m5TqdTWFCuRedbWENEoGpcz88RZRd5u90e3NSCx76ZtWfXngWYBe80e6CpP7QH7efOK4u28/H6/X7p/FTs/HtwIRJ3UOiUOp1OnJ2dxeXlZUwmk+K2V3b/76kV/R/+8Iefqh2fBSwWtop48P3okZ6CANja8L3b4Mqq6HGvO8wQU5ed04SMBvB4Ag+yApml1/Nh6479an6+bnttK3slWjFYFeOos/I8I1HLk/l30bX1cBvrhw8fFje4tOjL1Ir+97///Y/q4qNX/9T719QRp5sQtGMRZ0UkyOHzjSZ5bK0dBjwFdBwqEh3HMmwJdZWebLENdCo6TVU9FHXzOc2XBeL4+EgZcgeQWWr1XDKPgbdnN533hQzKdDqNy8vLuLy8jIuLi7i8vIzr6+t48OBBUS/BmQFzRPS//e1vf6p2fDZAMHDbB4NBUWEHdxGpOY3W83RZnhoL0XMxC7v1HLnn/eE9tfaZ6FVYVbl3Hc+r4NTV521V1NxRwcsYDAbFvthCV60PoB0QvqeWnn/jXq9XlEE/fPgwvvzyy3j8+HE8fPgwrq6uCtee/0fc3rbTqfshvvrqq9b9ShAMxtg8ow6W5OLiougAUHUHMegSV7iYOYin6+VXjWEjyqkqHhurm5vNoWf3ORuPZ8FBfq0FPBr4U7dfhx58PztdCYj3l1Xl8RRhdu273fc3r7y4uIhHjx7FkydP4unTp/Hll1/G1dVVnJ+fFy69idTNrRV9p9NpnegVFN6gtv7BgwdxeXkZDx48KBbL4AuTrRNf3FrdBjGq0NkiZlYebdKHBs1UVJyi06DjsfMH3BngWdOIbJF5NSEuWMI+OU2o7eLz4jagIvL6+jqePHkSz549i6dPn8bDhw9jOp2WrLuzT7noHb0/wt3dXeGKc0R7tVrFdDotzaTT8TXQ2ncIhV1fCGK/r18IIyK3+Fm7s4KebHxetU+OxrP3oe69xiN4DUCsKIQxuA57soChnqu2lzvhi4uLOD8/L8qf7c7fU9XpWfQN2Gw2xRLLyF3ryjicU444XG1GBYJOA9YQhSdw+5kq4es2/Miq4uoEz8JmgbLV5WPq54igQ5i8fBisfSb6qhoC7ry4+pHXFcz+B6YaF+fUoOPc3e79umzsnvKYXoNw+B7HCACs+263K9bZ4+11P9nYu6rN2RicP1PUlebouz74fvOAPRy+XZfeZRei5w4RotfKPo1BcIfAsQJdItwcx7X3J4ILtNvtFjn3iCjKXtnCqFuuhScR96LPIveZe5pZaXWv1X3PPAwFx8qq13g2IASv0XT2bniFX755h4o+s/Q6qUcLivC7o+oxy1jw+Zhq7N43BIU73W43VqvVQfRdLU7m1qNYBH9zuo8LbLTjYNFzmk2tu7rGWdBOO6i7u7u0Xbx9FqhkAfIS4HDr+fbaWO0X+1VLv9lsot/vH4hfhaydk56Tqceib4COlTud+1leEI+OxVV4EBheI3inwTYWXTZEyMbp+Dxz67X4BcfPgoFazKJj/qrcuS4Nzg+++YeKnju5LKDIY3qtYTDNsegbgqg7W1OeYMMufEQ+jsZ3uDz0mPueufJVgs9cfAbtjTi0mlVDgUyUnDvXkll+ZLfUrjoXjNk5rsFuPLfHfBiefvSR+VQXo0VgTsWWviFcKacpusxVztx7/U7m3mJbpUrc3W55vXsck91jPYeqnHxd3l+Dht1ut+R68wQlDsRtNpvSvADsI5v2q8t6qfeC75oPw6JvAAsEbioHppoE8vjmFJzq09cMB9o4dsBpPryv7j9/F+2oOqes4+Jz4aEE9stxCB7fc0oN36kL5GVRfE7XaazCNMeibwDnqnu9XulmFscsPV5ryo5vWMnVfFnnwftSEesYvknKTjubLO+tgtdORqevage42+1iPB4frOyjoleha0qPOxxF4ykmx8U5Nahl5Pp4Li/NinPU2mbWnqPdSGexZfwUxTn80MpCrMEHcWkwMCunZdFilRu29LpgB7v3XJ3H1h6/h7r+3DZTjYtzGgDrjmqzyWRyUHuP7dSFzYSfleHq3H2myj3XbTSqz0OCTPjqpdR1XlV5c5z3arWK4XB4sDRYVpGnZbi69JaeB1t37ix0+q+px+79iXQ6nWJu/eXlZXE3m9FodJC6UsHwZJtswQwuJ4Xn8DlNuMH+ONXHx+B9oGiJb2apS4Or6PnB7cuOhd+Ul97mFYws+nuqfguL/gidTqew7phae3V1Vcyp18U0NEAXEQeTSqqm1modOXsP2qbMMlcFEOEeV7n8uu8MFviHTK3F8EWn1mYLe/A56nlhWbDxeBy3t7dxc3NTzKFnz6mqMzRHRP/VV1/9VO34rGBR6CIaeKC8lC8wiBaWm0XP7i6vKJul8ng8n1WfZWLXSjV1i5ssooG/6wKDOubOhF+1iAbI5vgjuq+xBT5PdLSIh/BNQqfT6cHUZlOmVvS//OUvf6p2fBbgQmHrg1tY8Wwxns6J7+HihKWBtceFrMtl8Y0heNINX9z8HqOiV1EADoJVWVXN4bP44M5rXABeA4+psW/mQ5fL4nPKshpY8x7Hx730bm9v0+Wy2krVudeK/te//vWP0pjPmU7nff081qKHBWeXPUuF4WJU0UccrpGHJbB5zfsq4WcuahZwy2IJ7Nrjmd18dan5PQgeKbYssMY3xmDha8wiy//rMesyJdx54Hk+n8dsNou//vWv8fLly/jmm2+KBTK9MOZ7fvGLX6Tv14r+V7/61Y/SmM8VTU/xxaxWhW/UiHpxiJ5TbxFl0S8Wi2KMi5s14DhoA1tstfJc3JK5wNxRsMXmardsSWsIDx0E7wfvZYE19ibY6qvwq+oOTl0COwtuYp884284HMaDBw8K4bd5Cewq0deukRcR7fqVBBY6BDubzeL29jZub29jNpvFZrOJiCiCSBA0xvYR9y4x9sEPLMXFKSe28moZM4uYzXHHtpml17SYuvQadNTCGb7bDV7z/e50yJClFzmPzx4EtstiHPx7oLPRCr6IiMlkcpBd0d+uDfzud7/zGnlN4UAULwDB7m3E/b3VeFqpWnp29xmIlkXPeW+QBd3UvddKOnwHEW9sq+N6tvpVVpm3RXs1hpANE7itvA3vs8ras0VnK8/xBNQBQPj4DfW2VtwJtR0X55wALA6LOls/jt1QvTkGnjUnHVG+71uVO5zl2TWYp5F/bMv7g+i1YIjd9CxjoKAjQyeAjkXbG3FYisxZBc0GVP3+2pntdrsDLwPxioiI5XLZ/B/dEmzpT0Ar7TgVhwtVV53RAhe1yLxcFoKD2E7H9fgsy2dXWXp0Mth/VnyDfbPwut1uUXWXpQmrvAAN5KETULGzZdfvaBQ/+x+gzfgul+7aSJ2Ga+9PgK0q/mbXksefg8GguCirCkRYqJxj5s/UbYYgNc+uVlzd4Ey8OqRg4er6c3hst9uDwFrmkUREqdNQC67uPQSvkf86d19jFfw9cxxb+obc3d0V694jGMfRdI0wq5Xmi1nFza69pt6QQkPeXKP9OlEH30VHwcfQPL0KXyPnvG7dYDAo1rLTY+K4mDuPACU6jaoIug5b9KGod2LBN8OiPwEVH/LtiOTzqrbYPqKcXkOkWV30rKqOi35Y3BlqkbUaTYccbBl1rI12YYFOnd7KkX10fAhacsYChUdw8eElIPAZ8f4eAmy5swBfnaA182BOx6I/Ab7AkMLj1B0uaL54IRa2ujoz7FgUPiIKNxztAOy+q2XGe9xh8PBA89aZ8Hm8ra60Rs6Hw2Esl8viGbfxRg0Cr5zT7XZjvV4Xx0dbeIhz6v/DYv8wLPoGwLWHlb+5uYmbm5uS6DkKDjeYg2o65zyiej47C4EFwiLJOgsuWtHgWZXgQRZRzzoDztNjxhuGOxA96hvwDO8gCyL2+/2iY6gTs4X+w7HoGwDRLpfLmM/nhegxZtWVXnhlHXxfx9MszojDirws546/8XnVLD1sp2JXK5mVxuJZ3WguikH0HCKHlecHT7FdrVZHb9CJIQB7N1m+X1+b07HoTwQXP9z7+Xwe8/k8bm9vi+Aai369Xpcm5nBcAGhKj9/Hs7rwimYCqqL/xwRfVfmXBfs42o5qPZ1Dzw9Yfy5BRiBwtVoVHRWGQzycUNHz8AlegV39Zlj0DYDo1+t1IfrZbFYSPaw87vKiN1eMKE+jRamupt40n85WMSsKqqtRr0qDaXuy89VnzUbw+J6tvrr88/m8eMaiGpinwKvtoNCGl83K0nLIDnBhkzkNi74BuOjZuqHyS8e6+IznkWuUHVFvHZsj6KYC1Qq/rOAnEz23n/eHZ7X2VeeOZx3zc0R/MpkUomerz53k2dlZMVWZJy9xTb8uiZ15GViey9a+GRZ9AzgYB6vEU2NV9OzKshWGQHG7J4hYH+gMgH6uY/msFDficKae7k9f428+b33Oovw6QQfiXywWhcCn02nMZrPSpCOO9OuKuDodGMdCMBXtcYHO6Vj0DeGLD24tX4y42HWJKIgRf0PwWRQfgsMYXsXOHgMXySBToOW4asHVsldZex0e4LVae3SEGP7wWH+z2cTZ2Vlh8SeTSUyn0zS1x3GRbJ4+jrVer+Pdu3fx5s2bwiOy6E/Hom8IX/B8caJAB9VrWO4ZYmRLjM5gPB4XF3t2nMFgEBHlSr+sWq7K0mdxAVAn+Co3PwsIckHPfv9+paHtdhvD4bCUxRiPx7FarWIymZTceRZ7Vhasc/93u12sVqt4+/ZtvHjxIkajUVGHsFgsSgVAJseib4gKCRcprBKqz7g6ToWKmXq8QCb2xc94zevwsbVX8etx9TtoP59L3TOTRfMRe9B0HuISiFmgE8B6gxqwywKMnD7U8Tws/RdffBHT6bS44SWGAqYei74hmei1Yg4XHlxtdslhmXHxc2qq6oF96Tg9e2S18Mes+bHXVek7WFgNLnJNAcSPGEZdVSJ3aFkQEttvNpuYzWZxfX0d0+m0tBLRq1evYrFYlFYjMmUs+gZoAC0raskuNE7FQQBwfeG+aj28/q3WPROLjvk1/Yft+Xz0/Krez8bLaBdec94cx+YJPLvdrhgGZILXYUwmfFj05XJZrI5zcXERDx8+jKdPn8Z3330Xr1+/jvl8XnhdWWyizVj0DeALM1ssU4WaFeJA+NnSVRHlqr2IsiehabpjaapMvJnrXpeqqyI7zywlqJ5O1m4uG67yUPiY+/2+qIM4Pz+P6+vr+PnPfx7ff/99vHr1Kl6+fBlv374t0nrwkCz691j0DWDRalQ+S2chQMcWkWee1QWv2ANQ70Ej+FXj94hIPRKFLa62lz/XiD273DoU0fZmbcnSj6eIHkHO0WgU0+k0Hjx4EI8fPy7qAG5ubmKxWMRutyvuGGTB32PRnwiLFtF3XgtPXd1sNRie5Ybgkz5U8FyVpuWoVWPtu7vDWvuq9J2KoWpMn6XpsjUCqjqfbN/q1meiz9qK80NhE97j3xrHyIYJbceibwAsEt9wEuWjEfcXXiZ+/pIowjcAAAdKSURBVCxzizNBaVValsuGNdOa9myBC5wDqHPLqwJp7Ino0ATfqxNvXUzhFDSwyR0GFytVFSQZi74RED0Ka1BDDtEjUl3nHkdEKXKt7jHn/rm6DUtlowZgvV4Xd9vRWvYq4UOAVd4CzhHPaul5arCun4/vZHMBsnkHiINknZEen9uAdqJwSesgbNmPY9E3AKLHeBL141jKKuLeIsL1zOav44KH5eeltHkiC3LSXMuOklYEsjCpB89aCZhN+OF2ZuNxdc/ZynOpLdcZaHZCi4Z0nI6/sUqPdhRVATzA9wpUN97j9/dUdX4W/QnwxQUh4f52Z2dnxbLRdePlrGiEK/G4+ATiYsHzjLXZbHZg5fWhd9rR1JXGCbL0mW7Pw4xM9JyP5/X/dcpvNvFIC4xU9Bw/QDkznvn/ZCt/HIv+RFgMbOmn02lpWSy1kp1OJ9brdWHRObAWEaUYAEp3MZMPi1CiTp2HFWiDilytvaYWI8oiYjGhvdl4XK28FhbpJCJup2Y6ODaCTlQ9Axavxg+63W6cnZ0V/4vhcPiTXQd/C1j0DVBLP5lMYjKZxN3dXXrRdrvdkuBRrAI3lafQsqu/3W6LXP5qtYrBYFBM04WwdOyuD3wOi8gLcLDgOcuQpdBU9BxvYO8Fx0WdPTyRYzMN+f5/vJ12UHwHm36/H+fn59Hr9UqdizkNi74BPG4dDodxdnYW5+fnERGlixiWlS90rjVni8VDALa4LEJ0GLpPdpvZkuo2EDzXyWfz1LENB+Qy74CDePhdONYBwY/H45NEr96KFtRw6S6yFZjJCE/L4/jTsegbgrErRD+dTiMiUmulE2LgFquV5SBVNuOOYwYQmA4lqqx0VjLM1YOa29Z0G6e++DtVATx4QZl7z/tVK8/C11uCqeiHw2HsdruYTqdxdXXlu9s0xKJvAFtAHtdH3Lu3mdixFhzWg4OLzNV5sMIR5UUhI6KUHeC2ZO2LKN8aqy71VTXDLetY9Lv8HYgZgmWxs4i149JCJwT+cE95wCnCu7u7GI1G0ev14osvvojlclnEFsxpWPQNURcfK9+oe1815x2uKarzcNMHTttl4sosGQ8F+D0WuRapaFUfP2thTlbRllXwQcRwubG+QBbA0/1WBSCxz4jDe/ghc3J7exur1crufUMs+oaw6GHtI+LAwmeixyKQ6AAwCwzBPr63e1atxxd2VtEXESdZPLXU2Tmya1+XBsN2CD7yVFp4M1kqja09u/naWcDF5/PfbrfFMlts5bXDMzkWfQNYDLDaSBepRWf3FV7BYrEoWTa4+wwCfDrLLvMANMeO7as4dTucZzasyLblSUccKKyrkMN7/HtpVoLLhwF+e56TYJph0Z9IVqAzGo0KC8eLQ47H41iv18XacJPJpHTzB37W18PhsHQ7KJ1ww0JXK8iW7pi7i+9m76ubn/0OeK2FNrDOWoWHNmn8AB1Lp9M5OEfA++HcPDoJ19k3w6JvAFv4s7Oz0rrrOhmFV4TFY7lcHr0xBK8bz8tK8YIb6Ai0Q9DAXJ0XoBYyG3PjNT7nv3lczhV1nK5UK69i1sg/r4DDZcRa0HN+fh6PHz+Oq6urmE6npW3McSz6BuACH41GRWHNZDI5CMJxyWq2NLQuEa0dAHsDEL92AJzG4vX5dK57xKHY6s6PC4s4el8XiOMoPLvn2I7bodV/PKaH9eboP3ckOM5kMomf/exn8eTJk7i8vIzRaGRr3wCL/kQ4So0VWAeDQalIhS2suuRc8qqdAdx5vtmjWnuedcfTbPk5q7KritTruUWUC3OqynHxzFF5XtZbZ/fpECSblaf5ehU85/hRB3BxcRHX19dxcXFRpPhs6U/Dom+AWkLMpMtc6MzN1um03BFwTECnr2YP/g7vR8f9VYEuTdNF5Pl9zdVXFQJls+TwqEpD4pjqNfB+OPrPE3S48s/z55vROeL2OfkpqJDr8ufZ33WdwrEIfdPPs7bwexqUq3vOXp/SQeg5a5uO7SfbHwcOudMwB6Q/ikX/A/ghBSGnptb076oOpG67bF/Hcu+nvl/VKeDvJr9R3b6q9m+x12LR/0fgFJGcKqSmndLHENAp+1BL/7H3bwosemNaRip6Rz+MaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMix6Y1qGRW9My7DojWkZFr0xLcOiN6ZlWPTGtAyL3piWYdEb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZVj0xrQMi96YlmHRG9MyLHpjWoZFb0zLsOiNaRkWvTEtw6I3pmVY9Ma0DIvemJZh0RvTMvpHPu/8JK0wxvxk2NIb0zIsemNahkVvTMuw6I1pGRa9MS3DojemZfx/WcOa1qnNuGQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 19\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 20\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dvY8c2RXdb890T3/OB7ncXe6KBgQDTr2ZUgNy5tSJ/gHDmRP/E04dK3PozKEEKHLqwE4MA1oIu4AoghyuRHJm+nt6HCxO8dTp+6q7uNTuSnV+QKN7uut76rx73733veo9PDyEMaY7nPzUB2CM+XGx6I3pGBa9MR3DojemY1j0xnSM/oHfHdo35h+XXvalLb0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI/I//jfz+Pf/df/Gf/hv/2v+Ovd+qc+nJRDE2MaY47k+mYV//m//5/Y7h7i/754F59M/1/8l3//r3/qw9rDlt6Yj8Rycx/b3fsJpG+W25/waMpY9MZ8JP7F40n8x3/zL6PXi3h6MYr/9G//1U99SCm9A0+t9bz3xrRkvd3FWf9nYU/Tee8temP+efHDLowxFr0xncOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piO0f+pD8DUOfAU4Y+6TEavlz7o9KOur8fWdp8/9Bi7jkX/A/hQYTWtm33P3+Fz03e6jabjzARUEtWhZT92g1HaH86n1+u5AfgALPqW4Ibb7Xa1v/X30ncsTP2sr91ud/Rv+rfuqwkI59B76bderxcnJyfV55IQs+Ph7eg2eFu6v9PT0zg9PY2Tk5NqPXMcFn0LIKj7+/vY7XbVO/+uy/JnFudut6te9/f31Wu73cZ2u60+8zvvF9/jePAbXthH6dgicjFDQCxA/J4J/eTkpBIgRHh6eronfj3/bDv9fr+2LRU1xN7v92M4HMZoNIrhcBiDwaDapzmMRd8CCGy73cZ6vY7NZlMJD7/jXcWtgsV2NptNbDabWK/X1Wu1WtX+xr6wP6yHz9pQlLyEiKg1BIBFpQIrWV4WJUR3dnYW/X6/Ei+2xdeBGyPs7/T0NAaDQQwGgzg7O6s+Z9s6OzuL0WgUFxcXcXV1FRcXF7XjNYex6I+ErfxqtYrFYhHz+TzW63Xc39/XllFrzK/1el2JFuJerVaxWq1iuVxWL/4O62FfKvjNZhO73S62223R2h8Tf2Chq6udud5skSHWfr9fs7wnJyfVMfBxYX+w8BA8LDeLny3+YDCI6XQan376aXz55Zd7rr6t/WEs+hZAWKvVKm5vb+Pm5ibm83nc39/viR2WObPimcj5pVYe28P2IW4VOY4jixvgbz4XJhN1RN3tx9/6gjVmy9zv96t1eP+832MtPbv4g8EgJpNJ3NzcxMnJSUwmk5hMJjEajT7if/qfG4u+BbD0m80mlstl3NzcxN3dXU2Q+F0tuL7rC8uq2CFsCJqFzda8SeB6DqVlmgJ4pb8hSO7bw3prXIAbo6zRgNDPzs6qhgMuO8captNpDAaDePLkSdzd3cV6va6ugS39YSz6I+EbFu423HwIVAW/XC5jsVgUBZ4Jnd3/zIKXIvbZsX7IOaIPzu9N20XXBkDI9/f3xXQeNwSlRkNddXgI6F7xteIugzmMRd8CFhwH9FioKni82HVfLpc1t58Dc6Xo9m63q+Wo9XjwN9jtdnvutfbvS0LRfnwTvBxbbHbx9TiwHkQONx6BwCwmwMc6HA73ug+28Mdj0beE++4QLkSM4BwEP5/PYz6fx2KxqFl17u9vNpta0A/bBuxCY/96PBF5H523ocuWhJ/lzbNrkB0fxIsXxKtBNt42+u/cp9fGQrs2o9EoxuNxDIfDqitgjseib4mKHiLnPjyEnll5FrsG5jLBl6rS+B2Ugm3ZOWgajV15jeDreuxdsFeAPjnEyP1z3ib2UQrgDQaDvXQfd3eGw2FcXFzEdDqttt9UFGTqWPQtYNcewbzlchnz+bwWtIPo7+7uqn4/vAIWexZxZ1cef6u7zX1eFTpb1ax/nNUOqIg1V8/raWFRxL6Ah8Nh9YL4tb/OqTqIntN+7NlwmnK328XZ2Vk8fvw4zs/PYzQapZkCU8aibwlSZbDs8/m8Jm59IXDHwb7tdhsR+33yiKj6xhFREy9HxbVqjfvTHDnnHDdErBWFLHzsXxsNHCt3P/CZjxniHY1GVbUc+t+w3ly1x335LC+P662Viv1+P66urmqit5U/Hou+Bezar9fryprf3d3VIvWZ4HHTZhH3rK9bqnhjFxhi4vw4B8O0og1kpbwQMJaDkHBsaOxgdXldLN/v9yuxQ/hsvVnwHAPQc+KSWhwbX7/T09OYzWZxfn4ew+HQJbgtsehbwP1LWHaIvpSaQ4Re3emIqLnnGgFnd1ldZrzwPTcG2jCotY+ImnuPF8MuOGDhcUkwNxaw2hA9W/DMvWdrzy8NXKpXcnp6GqPRKCaTSZydndm1b4lFfySaquMI/e3tbRWo00g9BM8CYbiPnll0WM7xeFxZT7w4gq0vtZxN/fpSYE6X1/ECiE8gCAjRakMEISM+wBY/82iyACLHEbDssf15F+3UseiPQPPfCMppdJ6FzqJgwXM1WsnNhSVncY/H45hOpzEej2MymVSNAAfMMve/JPpSgU8p6q8Vh9zHxjnpuWgAT4OEKvxsVB2OV7MM8IRY8E0FOl0s3ik1dBZ9CziSrBV3q9WqFqHnevym/ru6xWdnZ5UFZ5FPp9Oqzrwk+kzs6i5nws9y9Zno2dpzME+7K1xCC4FmNfu8PL9rTj8rQMq6AE1pSvMei74FKnp+cVVdlsvG+lqJxqPL2KqzwCF4bgQ4Ql4SvPah9Vj4nVHBYbksFqAWOEsVshD5nRs+fWXiza4pPCkcH3sPJseibwEH8rgST2vls/QXi4LdYFhqiB1uPFt2fOZlEChDQO+Q4JssYMkT4d+1oIcn7dD1s1eGNgalxkHX0XLoiKj1+TnOAC+ji+79F198kX5v0bdAa+61X5tF5RW28pzTVrGz6FXsmYXneveS4I9xe3kZtfQPDw9V8RDetaRXRczXjt8Bb0uPIRMrNz78v0B85ebmJt69exfz+Tx2u10th9814f/mN79Jv7foj4RvtmzGGq2o435qRN2d1UKW8Xgcs9msEr1a9kzoWqSTCbzJwpZQ0WdoXX8WF+Drxtcvq1HI3PzSOXDDu1qt4u7uLt69exffffddvH79Oq6vr+PVq1fx5s2b2G631bXpmuAjLPqPAosefdqSK8/wDcxVaHDrYdlZ8JyS4yIXrbDLhFkK0MESZ+48PvP5lKzzIYHzZ80SZF0CLS8unR+2hZTp3d1dXF9fx1/+8pf45ptv4vnz5/HixYu4vr6O+Xwe2+22OGgoO4/StcwaHl6+lBL8OWw/w6JvSVa3DrTQhq0YB/A4Bw+3noXPkfmsog1oPzsTSamvXPp8SCCaPuPPmVXXmX24NoDLePValQSPmMp8Po/vvvsu/vznP8fXX38df/zjH+Pbb7+Nly9fxnw+r2IsZh+LvgV6IwMeQcbVZvqZRc+uPVv7TPBYl1v+bFQefjs9PU1TWMcKvsmqHBI9f8dDYkuz+2ospBSx5378er2Od+/excuXL+Obb76Jr7/+Ov70pz/Fq1ev4vb29sP+uR3Com9JFrDjvrWWk7JoVfRw3TVYxxH5UjWdTsaJ1+npadzf3x+M2JdSaPxddt5NAo+IPcvOg2W4ko/jIVlAUL0E9hSWy2W8efMmXrx4Ed9++208f/48/vrXv8ZyufxY/+Z/aiz6lqgrihFxTfXvHGzjhoEHp2QWPhO8zm+PV1NF26HziaiPxc+AIOHhZMNsszw+TxfOMwDrtN6a+0fhj04bBtG/ffs2Xr9+HS9fvozXr19XE5Qe26/tMhZ9S9i6c14cYuWHMJQGm3BhTjaQhj0FtfDsZcCil6L4QPvbfC54P9a11xw5ex7qxkPQEDlPF6bjE3gWoWxOfwgffyNq/+7du1gsFrURf6YZi74FEIdOGBERtXw7D4rhASfsIWhFHl46R1zEfm6a4YZEI/u8rjYa2XnhM9YDxwTodI7/bPpvnQ2YKxq5hDl7mAc3MPgdJdCcRTGHsehbwILnQFxE7EXh9ZFLmtvWaH4Wpc+qz1hs2BZbd65zzyxyKVfO7+oVlPryHI3XPruKXuf7Z/HrJKEqdo1hwO3nSkiL/ngs+hZAVCz49Xod/X5/L9eOgBwPPFHBsfCzEWm8DgfMSgNd1LVXceojr/TcsM4xLxYjC5DHIeBz9rgutfIQPncTuI+vx6aNjjkei/5IuLhmOBxWIkcZ6Ww2q15s6Xm8t9aGPzw81IR6aLCJutKa5y41FhooY6up+8hceG142K1nwbOLrpF6/k378TrXPzdqvH9cQ74etvDtsehbgGg9iz7i+6miptNpJXpU1KGPDhGqaNXiN0XOucHQqbewjZKV1znmVMy8fMT+4BVePnPrIdpsHn+dYkv77Lpc9gDOTNyH4hSmjEXfArX0s9msagjg1kP0+ghltmAoD9Uy3qbCFPytk1ryDa/Vemzl9YEaTUU1fKxs1dXKZ0G7LACnXQH0yfnvNoI3PwyL/gg0L5+JXofAcjVdxPtKOZ4JN2L/wRMlFzvLgbOrriPVuBouE2ImfF6HZ77VAGJWdMPWntfXRkO3rVmJzPMwHxeL/gjY2p6cnFSBvMlkUrnmEDtPXZUN68SNj1JZ3gf3V7VLoC42iwYv9hSaUmm8TW1gdJprtsBqtbNKO7XcOBb2UrJ4AcB547pmVl4zF7oNhQcPGYu+NciJY8AMvivNTwch8o2vbjhba9zwLPqSxWX3l9NuGuHWSLjWvWvjwgE1DRyWLD3edV+Zm55lDljsPBRWGwRcp6yBLGHB12kUvS/W92jfGn37wWBQiTibhJJv5mybanF3u/2Rchy4U0Hhhe1pWjCz5Oo2Z3GDLFKfdTe4ETmmH47j00aPRyeilDZrGLJ1snMwzdjSHwELlKPmPPpN89z4zOs39ctZ8Jnos4EqGsjT9VT4GaUReKWyXC3dzUby6aQV/B1baazHXZVsxqEsyInGgffrUtzjaBS9By98D1xeLirRlBk3ClyMg3cE1DRXjcAXexFZ35wDZuo+Yz2Gra6iwtvtdnsuNQKPu92uNskk9rPdbqPf78fDw0MMBoPqfbPZVMvxteHjwncsdvTfS+68dl92u++nwuIGkRsWroQsTV3WVWzpC0Co+jTa29vbuLm5qR5aud1uawIHEAuLHiJfLBbVdtEPbrL03IfmfrM2FOoCs+sPOBOB33mEXVbdhkYBjQA+I/WIa8CpyEMeBkSvaTo+Ji044saHA4uc/uv1etUjr2azWfXYK7v/72kU/ddff/1jHcfPAnbRswISDBrhmnGIna0OrCCLHutz/TnSXBCwWrYskKelqbx81s3I4hFsEXlZ/M7Hgf31+/1i+m2z2VTnz+dT6npwJJ+Fnx0nxM4Wm3/jwUt43NWjR4/ik08+iYuLixiNRha90Cj6P/zhD39XF1+t40+1fb3hObeNbZSmqsI62SOXYZky0fOTbDUFxcLLAmcseC7fjagX6JRSYvzOwPqzJ5BlCli0HMHXmAdfH0UbMm5MMsHzeULkeCDI5eVlXF1dVe+PHz+Oq6ur6vn1XZ0Ys0Sj6H/3u9/9WMfxs4CtJG5iTs9hZhuMm+dx76XRchH1YJwOMlFxHJopRwUPLwOC4JtbRavnGbE/sy0G/bAIcRxAPZCs8EePsXROnNfXLktE1Kw8N7Cj0SguLi7iyZMn8fTp0/jiiy/i008/jcePH8fl5WUleB2ibCJ6TRfi2bNnnbtK3AePiCo1hzLb8/PzOD8/r0bS6SOkOEfPA2105BlbRHZT2aPgYBi7v+zKZw+3AFwboGiXQNN9TUFA3TaXF2twka0zNzYcp9DgZOk48fdgMIjz8/N48uRJfPnll/Hs2bN4+vRpfPLJJzGbzar/i4nUzW28Ms+fP//7HMo/GFyBd3l5GZeXl9XgGn4+uj5hhl10DjapS8/Da3kiTRU94HUgvNJz6LEud3XU+mbR7SzlFhF7wbSscAjwjD56Tto10GG1h/4fl5eX8eTJk/j888/js88+iydPnsRsNqu5884+5bg5PAIOuHH6brFYVIEiCJHd7Yh8tBtbQp1MkwOApZw1BITiIKTMsj50FqRT9573k032wQ1R5k1oN4K7Ktl5qXtfmi+Prx9vH2MfLi4u4vLyMs7Pz6tBTnbn31Nq9Cz6I0E/f7lcVrnt1WoVw+FwbwKLLIqe9VlZFDyJJgbq6D9No9XIjfN+SoGziH2B87JaZKSuuT4yS88vc+uzx1Zz9yCrXeACJO4ysDfBjwPDEOZsqjCT4+KcBtRS7Ha7WK/XNTcVRSEqGN6G5qE5Mg1BcO0+8t2ZVWa3Pjve0rh8NFTcZeDtauaA96UWm72arP/P6+iswCp6HoevE3Do1FkI+mXekQtwjse190cCa41ilNVqVaXitGKsZAW58ASiynLg7AoD7fvz97rPzNpxdL/k8rN1Z4+CJ+vMpubGfrG9pmwGd3tg6YfD4Z7w2erj+16vF5vNZm+GYT0H04zd+5aw0Nfrdc1yl5bPhIa0mObRuaEoRdexjSzFp6gFxDpKJn516zFcuMmyamOhose20cjBs2GrvVqtqn2v1+vatcE+tFjHYj8ei74FLDqIEiWomfC0oAWwgFlkPIhELTa79BAuB7myxgLHqfts8uBKlp/Tkvg7ExqLPnuMtkbws9p4zliwB8RlwKUgpzmMRf8BZNYbgo14X9mWWXG94XEzw92Fy4/tAHzH6/M+mgSd9eOzHLzGJLLUHvfnMy9CuwgaDORGLSJqg3pKryxQiv25L98eX7GPhK2M+UfBlv4DUBc4c+/Z/c6KY9Rq8ucs/aTlqFmKsCmglQX2FC0EygKRpQo/3i4yBeySwxNi9z6bV6A014B6Nji+zGMxzVj0LWAxQXSDwaAxkNQUyNNAWVbRVwqulcSvYuZg1zF57KwUF/lyrI/sQam8Vwt1eLu8by5P5vkKOIqfzaqLdbNjt8d1GIu+JbjpOZpdytMfk7JDZBtTZiMApmlA9gy0yi0rnMkse1MfOBM7BxZ7vV6s1+u9WgNen48VsQnk4jVPzyk7zdVnD8zg+fQHg0Gt5PdQcNLUcXFOAxpxx00LkUKoH1Kcw54CUluaElPxsqXXCTg1Oq6U3P9M7OqZ4DOqALkrcmxxjk4UyqLXmYRKhTmw+BGx5/rzMXf9vj2Ei3NacHJyUg2rHY/HMZlMKtFnueOIuuib6u6zyrWsX87dgkz4Te57yQtAmg/v+A6uOlvtzWazV9+uouM0X1MZLgSdPa8+e1AGu/dNw3lNM3bvj6TXez+OezqdxsXFRfVYag6yZUNcs8kisE1113nyjcwVVy+Bq+RgSTNPA/vLfuv13k+TldXm67lpHUA2bl+LdHTMv4o+G3CTdTdw3MvlMhaLRczn88r150bLeMDNB9Pr9SrrzkNrLy4u9kZ2NY0o0/pxDnSxO8yFL+otAC2T5eIZFm1paC2jFpLX4WuA7bIHwmJUV5v79hpv4GvC/fZDQ2ux3d1uF3d3d3Fzc1O90PjyQ0bcAOQ0iv7Zs2c/1nH8rOC0FPrbeIwVJlyczWZ7I7x0tJy6stkTWiPqJbXZKDa8axUfBxUzD4NTbCoArt7TAqKsn950ndQV14Cldn24sVDBa9RfPYuTk5NqkBPHQeBBnJ+fV/8Lk9N4ZX71q1/9WMfxswA3JU8BBSHjkVWTyWRvHjwVPF6cs+a+63K5rP4uBQuzmIBOUsHC19QdV/9hO7wuC1O/49LXLHevy2T9a22cSh5CJnicW0R5uizu+2Nug5ubm9p0WfDCukrp3Buny/rtb3/buUgeRAqLzIGpLEWFdUoTY6roeWJMfoostqOWreRC876zICI3FDrxZAldHseN39gL+NgTY2aiV8Hz3/DAZrOZJ8Ys8NVXX7WfLuvXv/713+dofqaw0HQKbLwQQIJo4SLjJsQDLLMpsDFH3nK5rD00g2eBjdifAhvrq0CAVubhHPCeufaZS4/jYPFyUE09ABwT59r5d20YAW+PG4msMVPvR1396+vrWhcHU2A/evQorq6uOj0F9ldffZV+32jpI6JbV4ngPDKEulgs4vb2Nt6+fRt3d3exWCyqUXbI3WeWXreVPeyiFGFni6tutK6jnohaUn4IJYsM22HrXeqrc+oxy6OXHrml15aPT+sYIuoNGRcWaZ5fr0tE7D3sgmMJXeL3v/99e0vfZTQaD/ddC1K4nwnBj0ajPUuPCTiwbXZTNX/P/XKuYdf11R3WxuLk5P1wXaBFOFhWGwm24mrx9ff7+/tqYkvNTmgwMIsJaK5f/w9anYjl1RNDo/bmzZu9NKHz+O9xcc4RICe+2+1q7rtaI62jZ9FngbmI+th4/K3ihTcBsoklsC5/5saB0f45CzSLAai11/nrIPSsgci6EdooZE+4YbK4AHcr2DN5eHionqdncmzpj0BFrSPJOFDEN6j2Pzm/jhenzTI3XQtOSlF47A/L4JgODbLRqDw+Z9/r8vri49Pf1JJrV4G9jWy/mbdybHfC1HHt/ZFokIzz7hCwpqyabkJuSIAGq7Tfvdvtao1FFqzj7od2QWD14fZjeX3XZbEdfMYLHgreed2m889cew5OlhqdLKPBXoM5Dlv6lnB+GQ+y1Io8rk3XwFOWcoPwNWUHIbHY2WNgIWYeAgtSuxW8DK+PEXHaKHB8QPPmDCaw7PV6NVHz31nQseQplP4Hxyxnciz6I1DLi2KQ+Xwe8/m8qv7KKs/4M3sC6o5m+XbAc8Oxh8BC1joCbTx4X+iSZLl3DK7ZbrfVZ56tl/vscK/RGOGdv+d10HDwvILspeA64V2zC0wWkDTHYdEfAQsD018jfXd3d1cNOeXlOeqO7zjwpf1QdutZrFrGykJi9zqznhpo5Lx3U7+b+9raSLGIOV2XPawiGymHyTgQbEODhe4ReziOuv99sOhbwKKfz+dxe3sbt7e3lejVanJdPjcEHGmOqHsSjAb2IFg0JrxOlsfe7XZVSpAH9XA/OLOsbNU10q7FOSjK4eKjLG/Pz/KD8CFy5Ncj3s/Gw/l6W/OPi0XfAljA1WoVd3d3lehxY/ILD3HgOeJVRGzJI/KhtBH7rj+6E9ofzwbcsIXVUWylyLz2mfl41c1nMeuDKjh/rt+jMOn09LR6ahAG0rDF5+wGjk2vi/v17bDojyRz7+fzedzc3NQmwYTA1ut1JXqdZYatM0+IATFpEDCiPpwWQsd2uEHQLIMKXz0S3Q9bfnX71ZPh7erUVvqZxxvw+IPValUNoOH6/azkmI+t1HCZw1j0LcDNhpFyi8UiFotFRNSft44bG9Np6Th3CJMFz9/DgunyWAcRffzGDQKvywLNxIv1+Z3PlbeRRde5Pl/HKrDVx4vHHSDzgYkwcc206Ia7RLz/zWZTNXyIB5jjsOhbAAHhZobw8Rvcf/w2Go1qotfoO8p7SwLUCrtsRh2Ommcz22QWm2naJwtdt6UxCq2DV8sPq85i54FH2QSYWbXdw8NDbfBTr9eL1WqVxkRMjkXfArac3Dfl79nSLZfLWu6eLTIEPxwOa2LUqrrMxefotlb4NQ0D1r5vVjnYVLmXufiliL5eC1wPtvg86AjLaZxA6/mx3dvb27i5uYm3b9/Wsg3mMBZ9S7TvjpeKfrlc1iatZHHiu+FwuDdiDvuIiJrljtifw57Fnon+UEWlNij6nZ53RH06LY3scz+frT+sN7v5pXnx+NrqtvD3crmMm5ubePXqVRX4w7bMYSz6D4DdW9ywbKU2m83e3HUsSozG4xs+s6SlroEKPtuHpvsY7TY0ufh6zhH1Sj6tmW8q4lG3PytbLgUMuVFZrVbxt7/9LWazWZUu3e2+nzfPwj+MRf8BlGrAUXW2Xq9rwzq5vw23HhNuwIUt3fgQNAf7uItw6IEXJdf92O+AdhEy4WcNAd45Ks9i1+KbUjyCsyebzSbevn0bl5eXMR6Pq2IjNLqmGYu+BaV8eFanjugyF81wtB7TaWfjz7O0Gu8zs/jZBJkcyW8Seel3RqP3pYE4WIYbALX+WqugWQvNXvD+Ebl/9OhRNQ05N6ivXr2qLL7GMMz3WPQtUcvNIuFUFsM3Nazz2dlZzbXXWW1UHFljo41Q9jrG2md/HwoEZoLP4hJq/fmc9Npkx86wyz+dTmM8HleTllxeXsbTp0/jxYsXcX19HfP5PH0wh7HoW4EbUx8yGbHv6uO77ObmYhTOR+t2svUxaIVLf7PjLL3we9M58mc0OBr1L+03+4xMRNY4NDVc2bFC9OwtXVxcxGeffRa//OUv4/r6Ol69ehVv3rypDQbCusaiPxq+OXkaLTQAHMjS/izDo9i0L8/Br6z2XY8js4woCWbBKm1u/mNcdm2c+Dj1u2MEz25+djyc8hyNRjGbzeLx48fxi1/8Im5vb+Pdu3cxn8+rZQ9lMbqGRd8C9MvhnrPoIbRer7fnomvkO+vX6jqaqsqspMKpPvwNK1uK5Ov2SkU6KvhDffPMw9Dtah++KRaB4+DGDPGR8Xgc5+fntcaWu0QWfR2LvgW4iRB9xxNuVqtVRETtxsffmTB0SuaSqDTirY9+wnIo8sHkF6Wgnh4bv+t5KtmxaQS+yXKX0oIsZL5GWbei1N3RyUV4kJPZx6JvAVsXPKp6OBxWE1WycLPUEz7rXO98w0NM+nx2HbGGCjY+Bky9rak8Hm/PQip5D2qdtfvBDRG+i3hfTKQ1A7p/Dd7xxKB8DHjPjlPLj7VGwZSx6Fugoh+NRlXaDairjj42Cw03MhoHbjRgPXkcOqrYFotFVe+PJ+aORqO9+fb1Edal0lxueMJP57EAAAaTSURBVPQ8s0ZLJ85AA8XdClwfjXmwxdcxCHhhnoBMuJm3xA0Dr+OA3feUGj+L/gj44rF7Px6PYzweVzl5dilx40HQsIp8Y97fv5+THs+1Y9Hr6DQIHmKH4Fn0KnyIUEXBrnpmRfHODZR6IGiYcI04HakP/WAxZ+MQcF01es/XitOXZ2dn1T6x/1LcwtSx6I8ENxRu0tFoFOPxOCaTSex2u9rU2BqEwmSRfOPid7a0qORDAQpSeyx4iJy7GGiE+Hl6bO3ZxdduBAsfx6R98Uz0KDvGsXNjyF0fDnjydvn5APoq7Rv7Ozk5ifF4HL3e+2cI2rofj0XfAg7kDYfDGI/HMZ1Oq9RQqfa91+tVs8FoNB/AC4D1xBjx9Xodg8Eglstl0YqzuPnvzMqqiHjIKs6RrTEaLu1y8GOkIiLt9rAHkvXz9elBOG629NytwDGfnp7G+fl59Hq9qnExx2PRt4D7oXDvIXq1Zlq5h/nxuR+sASp2+REP6PV6VWUZhupmo+qyEXeHioj0QRN8jtpvZu+ArS7WUdHjnYOLWeBNn/bLy/F++bFV/X6/ClzOZrOYTCa29C2w6FuClBDc2MlkEhFRC15pIAveAdxiHaSjDQAX9JycvJ8zDkIoeRNqoUuTavB+ddBLFmxjD0FjAViGz51jDeyVZO69Pt6brT32y6P0drtdlZrEY6o9lr4dFn0LWFi4uUejUc29Z2vP32HSiH6/X/WL0T8tpfAi6hNB8nHwO+BYQlNgSzMMLBg+x1IUPwv8oWHjp/eicczqBfjaqPCzh3/yOAUE/B4/fhzL5bJWxmwOY9G3hF18uLMRsTfUla08W7XValX9BvHDnYeFR185E5hatKbGQQOKvKwW58BqY3lNg5X2z4G/7XZbnVcppsDrIBDHwuenA6OyUKv/RqNRTKfTuLu7q+bV43Seacaib4mK/uzsLCLeiz7rW6MvjplfuW8OsSDXD6+Bhc8ueCZW/Y4bAE59lbaRnWOWhWi6Hmi4IHyIn/vnuh5bew3owdJndQ739/exWCyqqbZ0fINpxqJvgfad4b7y3/riG5kj8LD4p6enVUovIvYEnlXtZd8z/LcKoslrwDninesImq4JhK1xCY0paDciot5YquhLDQZ3iZrOxeRY9EfCYoDYR6NRZdkgVp4McjQaxWq1islksjf1s74wbxzekQfncfYa+IMVzEa6fYgINFaggs/+zjIVWoCj8HHi+Ln/DisP9z4iatvVCkSPpGuHRd8CDeLNZrM4OTnZi4RzqSrP/87CxgtuKr/zXPHZ5JHcEPCknBz5z9x+/Rzx/llyOD8N3mVuPi/DOXd9V8FrjEIj/xAxi5mrCWH9p9NpfP755/Ho0aOYTCZ7FYemGYu+BbhBh8NhzGazOD09jclkshd405Fox8wHr14AzwuvVXClqaJLWQDty2domo5LcTUIp10cdc21so6PJ6uhzyL4SPdpfn8wGMR0Oo0nT57E06dP4+LiIobDoUfVtcCiPxK+0YfDYRV51ply8K7TQ2luXhsCfRIMzwmvFh+Veip8bmyyGADIIvAasee0nVp6dec5Al/qj5cmBGExZyXE+swAeFnn5+dxdXUV5+fncXZ2ZkvfAou+BSoE1HxngtLougbftDHgl46bz+aFz/7OZrNpk7/WgpzM1cd7aaQc/tYaAT1/bCfbRmlbLHyu/PP4+Xb0DgR8HBIVMjGXlsn+PtQolF6lCH7Tb9mxlMiEzaLNPmvD0FQUdExdwKFtlTwNW/ki6UWx6H8APyRN1LTuMY0Gfz4mYKffl0SSfX/Msk2R/rYNz7HHkTUupoZF/4/AMQI5VkRtG6UfKqA26x9qfD7GPoxFb0zXSEXv6IcxHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6Rv/A770f5SiMMT8atvTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGP8f3QF583MARLkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 21\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 22\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 23\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 24\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dP48bWdbeD9n8T3arpdHOSJAcrIE39WabGtg3Wbypk/0ChjMn/hJO/RUcOnO4C2zk1IGdGAZmgh1oZwWpBY3+sNn812wHwlN66uGpYpVWMyNvPT+AIJtkVd1i13PPueece6t3d3cXxpju0P+lG2CM+Xmx6I3pGBa9MR3DojemY1j0xnSMwYnPHdo35v9fetmbtvTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6Yz4j//1//RD/8l/+R/z7//o/4/X19pduTsqphTGNMQ25er+J//Tf/nfsD3fxf56/i6/m/zf+87/7N790s46wpTfmM7He3cb+8HEB6ffr/S/YmmosemM+E//qwSz+w7/919HrRTy6mMR//Od/+qWblNI7cddar3tvTEu2+0OMBl+EPU3XvbfojfnHxTe7MMZY9MZ0DovemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzrG4JdugPnIiTsIN/5e0/1U0eulNzv9LNtmbWt7vL+nfcai/7v4FHG1FSz/nb3W57rXVWQiqhMWf1b1+hRoV932Ve3ibd0BtMeibwkuuMPhUCvQ7D0WqL6ueuA4n/J5VZsyIJ5Tz/pe3SP7HaosPR79fj/dDz/3+/3o9/txdnZWvLb4m2PRtwBiur29jcPhUDzjM/4ef1/FeTgcigfva7/fVz7jO3jw37wfHOf29jZtT4YK6+zs7KTwWHz9fj8Gg0EhQt2+qkPCvrAd9sEPFjW+OxwOYzQaxWQyifF4HMPhsDimOY1F3wKIab/fx3a7jd1uF/v9PrXcVcJmMWP73W4X2+02ttttbDab2Gw2pfd2u13x2O/3xWO325X2h9eZB4DOqQoIq+pZH2xtB4NBDIfDGA6HMRgMSh0A4N8DbeEOA9uPRqPKfeFY0+k0zs/P4/LyMi4uLkodgjmNRd8QtvKbzSZWq1Xc3NzEdruN29vbI7FDgCzQ7XZbvIawIfLNZhPr9bp4QPAsfGybCR7H0Q6nyRAk4tjKQ5D4DJ9rZ8DiHAwGMRqNCmvMotd2YV/caYxGo8Jy41lFPxwOYz6fx8OHD+PJkyfR6/VK37G1P41F34LD4RD7/T42m01cX1/Hu3fv4ubmpnC/IXYIk603W3EIPPubBc8WHsfOXHs+dkQcudEq9Cqrf2o8rZ0Adw4QHlztwWBQEmHm3sM6YzsIH9aeOw98dzAYxGw2iydPnsTZ2VnMZrOYzWYxHo8/83/7HxeLvgWw9NvtNm5ubuL9+/exXC4LUeIzdAxsvW9ubkrCZovO4lerrqJWl53deG5n9lrPJUPH7ae+w+N6tbrq4utxdRt17Xk/+H6/34/5fB6j0SgePnwYq9Wq+J3u7u5s6Rtg0TeEo/aw5pvNJm5ubmKz2cThcCissoodD7XuELlade5EVOhZYFDbqK+bnBtb5Ox19lvo8fv9fhwOh5JnoPvIgobwFLjz4OEFjgHPhodH8LJMcyz6FrDgeGzOot1ut4XYMe6H4CF6DtJpUI7H4bj4cVGzGFkQGqjLcuD6WV2nkI3hdR9q7dlicwCOI/kMLLgGAvHgLEBElGIB7P7bsrfHom8JBAZrD5FzUA5CV9GzZcf2nIbDg8FYtm5cfkrA2Tlkz/h+JuiqY3HkvN/vx2g0KkQPYXKQjR8qeE6/DYfDkuA5PToej4txPDoXF+o0x6JvCVt6jMcRxWfBX19fF2LHEACWfbvdliL83JHUCZCfq6gqcsnOIRsisCB1+6pcO1xxjMXH43EhfkTzVfjsEUDwCOJByACd4W63i4gPor+4uIj5fB7j8dgWvyUWfQs4bQcLv1qtCouu4/jVapVaeB6rq/CqKtBYzBF5AY1aXY56q3D1+IfD4eg4/Mzf5W0j4ijXPh6PYzKZlETMY3YuvoGrzuk6jvzf3d2VUp+HwyFGo1E8ePAgzs/PYzKZxGAwsOhbYNG3QK08hL1cLksRelh6dAJcWMPjdg4OAlg4FpxGwyEKrYDjMbK+Vhc9K+RRwXPHwi42nwfayhYboofw2dVn0fMYnsXPUX+0lYN2g8EgLi8vLfpPxKJvCUePb25uYrlcxvv370tpOA3cZek3danVsmoVGoSj1W8QDwfPWEwaUNMCIs4OoC18fPYQEIPgwiBsh+ND7GzttR2a14fYs2o+7mgh+rOzs1gsFrFYLOzefwIWfQvYQqJABw8WPafm2MLrmD3iONfNhS1asAIBwZrye2otVficAstKhDVjwMMDFR57Luzis5uu7dNaevZEuEPToh5uL9ra7/djOp3GbDYrFe+YZlj0DdD8OMbzPKZXsXMaD+JQ6x4RRxY9G+eyu8wPFZd2DjqehhXPSnXV0uv3OUeuwxWkEHEOaBM6HQ3kqZuvKT4+dkQctRUdTFPX3kU7ZSz6FvD4kgV/fX1dStlxVR0LXoN1bPVg6TB7DM+TySSm02nxmM1mMZlMYjabxWg0iul0WnQOEDkHxLQuHSLOHmhbVdSea/xZ9ABuuz7Uc2BvQmfVZaLPahG0M9OMQva/6xpVHZ1F3wIWPVfdacEN18Vn1h0XPVt2PGC9IXA864Mtvlp4FpwKSc9Hc/VZmlCLknhGHxfNZFZcxc4PFT4HJbnOP2unVuzh4Xz9aSz6FnC6jifJaPlsVf4bqODVhYfYp9NpLBaLI8FPp9OSi59NR61yl7NCm6qOSc9dA4BZnCKLCehx1dNh8et2VW1l1x+dj3YgJseibwFberjwED1bdrV8mpLjvLa68bPZLObzeemZxY5HFixTsdeJqI4qS6/Cr4sJfMrx2nyu9QbaNoz92f3vGo8fP07ft+gbouNaWPasfBYTTVA+y7l35LQx9oYrz4LHQ8WuQbwsSl8n+CorrtSJDHMB8Jx5NboPjRvUzQ3g7TkGofthj4MLpZbLZbx9+zZWq1Xc3t6WAn1dE/4f/vCH9H2LvgU8rlXRa8pLL2h+n9NwsPAsdHbpIXa4/xqk00BZZtlPCT5zvfk1xspVJbtZaa4Klb2grISXOxI+h7r/Aa9r8Pr163j16lVcXV3Fixcv4s2bN7Hb7YrOr2uCj7DoPxtaKKLTOnUsqcUumJSCsTwH6haLRSF8deN5MoqO07NJMRzY0tdVFpatqrrEWZQ/25dmBLKagKwuoC6Yp/ve7/exXq/j+vo6rq6u4m9/+1s8e/Ysnj17Fs+fP4+rq6u4vr6O/X5fm8Ov8074O9k58verftMvYf8ZFn0LsjEtfnh14TOxc0oLVlut/Hw+LwleK9pYCCosWErOxWtE+5RVr/MIqlJ9fKwqsetin9xhatGOWnr2GlAnsVqt4vXr1/HXv/41vvvuu/j222/j+++/j5cvXxYpVM+zz7HoW6AXeEQ5TcVjdlirbIVXde05aKeC1zJatIMF1ev1Yr/fR0QUcYQsTQaqxF4n/Kpxdea+48FCzxb31NVu6nL0PI7fbDbx7t27ePHiRXz//ffx7bffxl/+8pd4+fJlLJfLz/+P/wfDom9I1ZgwKzDhOeFcacclpxA+cu6Zhc/KUvni57YNBh/+lahNPxVFzwTeJNhX5b7zWBsuODIdWrjExUsaD+HjZkOD29vbWK/X8ebNm3j+/Hk8e/Ysfvjhh3j9+nWs1+tW/9OuYtF/IrDwbNF5PjnXwLNrjo4Awoa1x7O69Fn5rAoOaUEdEwO4/QoXwGSdRNVYs8q6cyaDLbuuC8gdQDbzMPMW+AFLf3V1FS9fvoxXr14V0fqm49ouY9G3gMfpbL3v7u5KwTlUyUHAsPpaY8/C17y7uvQRH628tuXs7Cxub2+P4gdMllbj/VQJvomLz4JnV56LmHQJMV5nIFtBSJf25ipHTGt++/ZtMa2ZZ/yZeiz6huDih6B4wYiIKFXUcU6dx+VZvTl3FjxBRSeSsPXLin14n+omq0jxHs6rSvh1sJVn665Lf1ctH4bVhPDgKbvZM3cw6Fiwj2z2oqnGom8BLCsH4iaTSUTEUb49C8axqNjqc4GNpuSqClJwkSMtVRf51ko1dfUzsWdlrLydihAPFXy2KrCuN5CtG6g1/jj+3V15xh/f5MM0w6JvAcbunF/fbrel+d2cfmPRa0Qar3mYwMLNLDWnvziDkBXn8HbZDTI05950LJx1Qip4VMhV3b0nE7zetUc7OH1kOX/TDIu+IbDOLPr5fF5YWkyO4Xx7dnPFTHBVU0rZ0uvYGYtEogPRajx8pqkzXZ9P0aAftzUTHo/jYeF5afBstWB+j2/3BbFz4ROfO9rA56arB5vTWPQtgOiRYlssFkVRDIQO4WOeO9/TjS9UtdSZtT1V2QbxamUedzAqzKw4JjsmPtOiG20LrDMCcnr/PRa13suP26TBOnbl1ZJzW/C3aY5F34Je70PdPKz8YrEoCmFQSgv3noN4EL1Wp1W5pvweX9yaFtPFKbV0Fd/Xm19mx+dj4FnjACpEXVQjEzd/R+/Wq0LPXHnz+bHoG8CCgns/m83i/Py8+Jxr6DmIx64914Kjii5zpVFKG3EctVc3X0ttNaefibLKza8aSqj4+T2OsGcdC4Js/LqJ4E/9P/jZtMOib4COv1FJN5/PC4HyLDhdEBIi7PV6xcwvDAtYtBAfj8vVpc/cfIa9ChYYW2FNg53Ku/MYW0WsLr4G4thD4E5DBc7zBrIsQjYUQUd8qqPA728+YNG3BNYeKTukk7IlqxCgi/hoRXVRDf4Mr7lDiIiSNcw6ANDr9YrAVpbiw3Ys4kyUHFDLJspwh6DeBA9hsqg7DynUO+GptVmnwLB3ckrUFnyZWtH7x/qIXoB8c4fD4ZAuQKlReN2Xjpvx3X6/XxKvRt5VsCCr3ss8Az1+ZoV5G3XH2ZJnmYFs2MDw78IThPDbZrEGPbdsfTxfr82wpW+ABtBwMWcVcCqoiChc9ywQp5NO8H117zUYlkXgM9GrdeXP66hK1WkaLes8VIA6qYc7BLyH36aqbTp+v729PfIUXKTTjFrRO1DyAVhbvcW0WrT9fl+a8w53PqIcSddUlgbkFLW4GojjQF5EOb9fldbK6uy13be3t6X8PwcYdXvNHlRlJvg3Ve8C8xiyDlDPDd4V1/pjWMATm7J5CF3Hlr6CTOi4Rx3uSMtLZkUcl4lCNPgsK1VV7yGi2k3PXOgqD4HbU2d1OebAgbT9fh+j0Si22236+yCWwfvd7/el4Jp+rr8vfiMWe5Xg0Vbu0LhQCc9nZ2dFZoVve2X3/yO1ov/uu+9+rnZ8EbCLzlFrXFwQKt+GGhFrROZ3u10Mh8PY7XZHizJin1qYkrn3QC2iBvJAFkvQeAHvX1eJhXXnQCLOi1ONPLkH3gfP8qsTL6PnxOfK20DsbLG5/XyXnLOzs5hMJnF5eRlfffVVXFxcxGQyseiFWtH/+c9//kld/Cp39ufev15oPNbmxS8gEh2P8xgfkX1E8Fn07N5nRTJV+ecsyKaiYiutaS79LkSaHQvgeGdnZ0Vb4U5nc9w5naewSPl8smAjyBb6ZPEjiLpYLOLevXtxeXkZFxcXcXl5Gffv34/Ly8uYz+cxGo06uzBmFbWi/+Mf//hzteOLAcLGBTwcDkur0vJ8d76II6LUQfCYMuJ4XF7l1qu1zlJeClthFj3Atrj4OWqeHVe9C+7ksrnvmnvPzkd/Lx0GaRAP56GTiLA2wWQyiYuLi3j48GE8evQoHj16FL/61a/iwYMHcXFxUQg++z91nV7dD/H06dPO/UpszXu9XnG/uOl0Gufn5zGfz+P8/LyordfVZ/QOM+pqa8EKb6u185yrr/o/8cqx2aQboJYV+8yEmYkzS9VpHcAp11yDfNl+qs6Pf6PRaBTz+Ty+/vrrePz4cTx58iQeP34c9+/fL92z3kTqxtWKvtfrdU70Sq/3sdpusVjE+fl53Lt3rxA+F+DweFcXwWDB8cWti2BkY/Oq8b4KXufTZy51tr9sWw3wseXnqrxM8BFRKk7SMTn2la2Ok7n5+v8YDofx4MGDePz4cTx9+jSePHkSDx8+jMVikU5l7jDpD+Du8AR3d3fFckz8WK/XRY09Li4WsF7kVdaQvYKswEepsqIcTMP7VTEN7Ti4zbr6bjYOZ7c84mPsgNvFQx3sNxN93UQgFj97RrD0FxcXRQeM9Qvszn+kqtOz6BtyOByKJZoiorhYh8PhkQjZUkZEabzKLjWP/3lYwNvzP47H64PBoEgJai0/Xmcr6TDsEUCYOjxRb4E9Fo41cGfE55Ot2Z+JHqnRrKpPhxEY0+uSZHWdpfmIi3NqYEsBC7fZbErjdMyX50BTJhQttYUQeAXdKrHxMzoEFnaW7+ZOJyKOhK+Cx76qxKpDlSw1x/vI7rHHrjqnQVn4nMbkWAKnUHn/uhSZOY1r7xuiRTKbzSYiolS1FhEly8oucZY2g7UeDoeFBYN4s0g+V8ZVibyqEEfH3Lp/Fn+dleboPo7H+9C0ZZXoqyw9i5+Lb7hD0Lvzsgdk4Z/G7n0LcLGjWGW73RYWV6PfLA5Nt2H8nRXO4Dgq9swq47sKtkXunl1w7A/f023U4utNMrWdvC1ce31UiZ7TgChmYoHjoVY8K9bR8zHVWPQtYAvHVl8DZ1n9OQsPlrnX6xWWDBVwQIcIER9vWRVRXfuOfcIj4OcM3UdWeaeZBW4Tb6vDA75LT7bCL9qp7c+8HA4gZhkO0xyL/hNQCw4rDmGxeHXsqxYXbjpXwGk0HK9RO4DPNTCGjketf/ZeRtaJnMr/8/ez9KP+DbT0Fp0ozp8DeFkK0mL/dDz9yHyxOKb002BL/wlkLii7nOze4/ua2mKrGBFHrzOrxkErzkfr8dUKNnWDdSjCFljH/5l7j9eaSuSUpbr3PIchK+/VB+/DfBoWfQuySLrm6ZsG8tj15Tvb8Lp6dYG8zHWuq8yrQoWu1Xd8LrwfFV2/3y8tw8Xf0+FPRB7I0+h9FsnXmgeLvz0WfQsgAASmuCgkS9lFROVEFM1n88w8vT21djScWtNgm3YCmfXH2FnrELTUloNoWeQ+OyeejTcajYqofFaRx6LPBM85ek7Z4Ry0rLiqAtGUcXFODXpRs9hQj6/FISp6dmWBWnnNaVe59+xRZEGzrN5dvQ89N3XjkZHAdzlaztvq9F6cl3Zm2YxDFr3eACOrxdfiHKRNtXIP++76dXsKF+c0BGKD2DHdFu49j7fxN6gq0NEiGHbtecyO70fk962r6wTY2jOczuNUH39PU2p1Zbhom54XD1k4ZZcV3qgbr0MNFrhW72ktgqnG7n1DMH7nKbbz+bw0pufxtE78OFV/z1a6SqgR9RNusgk/dSKA4PEM11lz6HhPg2rZ0EWHHvzMnQeLHkuIYZ86ExFt5RoJ3AkXN8Lc7/fF/8J8oOq3sOhP0OuVp9ZiVheWYlJryhd6lYXEBc1ewSmxahltxOeZWstVgVpxiLZnU2urhM+ZBh12aFt4TM+CPzW1drfbxWg0infv3sXbt2+L24j1+31PrW1AreifPn36c7Xji4IFwu485tPzDSp17M0uLX/G4+Umi2hopLtqqKXCr+o02J3XwBfOt2o6rYq97pZUQDu0LBBYtRgHfhM+P/5dYNG56g/nsVgsio7G5NT+Mr/97W9/rnZ8EXBFHU/j5OWycKFl87Y5iMXTZCOql8tSK6lBN3ZpuTPSdmsQUYWbpRD1uPo9FiOs8acul6WxAR6fZ/MQso6Mf2OO7m82m7i5uYnlchkPHjyIe/fulZbL6ipV514r+t///vc/SWO+ZHDxb7fbwhJyIIotFEeYcZE2WRhTV8JVIbM4sK0Ki7fRzoKLg7AfnBdnE+oCtdpJ6SMrptGhAntA2VAjixOAzHNhr2G1WsVyuYy3b9/Gq1ev4ocffigW1Xjw4IEXxoyI3/zmN+n7taL/3e9+95M05kuFL8rswt5ut7Fer4+WwMbFyhNN6kTfZgnsiOObWFaNfdVLyCLyLHi2zFkHo50UW1eupsui69iXtofbweeC9zKvJ5tVx94Nx1GwBDYsfpeXwK4Sfe0aeRHRrV9JwEWP9e7X63Usl8t49+5dvHv3LpbLZazX6yIwx/l2LIrBVpf3x8UoVW4+CzMrV61ypwHHEXglW7jqOr5n64tj8e2t9ZGN9bP0JNoG9Lwy74XPR4cI2Ad3THju9XrF4qW42QXXB3SJP/3pT14jry2IQPM4PSJKFhupLQSY+FbVmeizktnMxWd4Wwiu3+9Xegg6NFDB4TlLJbJ4+dbTmeAzi68Ziiq4k2EPIessskg84gtarXd3dxc//vjj0ToAdb9v13BxTgPgYsJ1h6B1Aky25h2sE9eeq1XXMSdf5FmVHKNje36t42pGXXuNG7AQtRgH2+i+stiDoulLzRDwvuvaz0MPXlXX1+xpbOkbwJFjLifl6DWPNzXyzC4pl8niomeBqlWDAHkfOh4Huh06kyyFdyqHrWNxWEt+hmBxnjqGr4oXqPAhVu4EsqELnxviLpoJMadx7X0D9GLGhQoXP+JjWW1dkAxox8Dgb3ZJs7w5dzS8X24znnkowWW3GuXnbbmyLmszOqJ+v1/yQjj9p+de51lUBfXqvAUOaFrwzbGlbwkEj9zwzc1NYanZzdeinezCBtyhcDEKr6LDFlVz10yWrsN+ED/AgppswdF+HAexCogbHRoLjSvqMJyBy83eAIStAcqI46GBejL4nv5mVR6BOY1F3wC+UBHRvrm5idVqFdfX16XCFq27ZyuqwS615FV19xAuBw35ODo04E6G94G/EQjUdqjbDYGPRqOjMT4H8Dj9mI2z0WHoeF+9J26rdgTKqc9NNRZ9AzSyvV6vY7Vaxfv37+P9+/dHkXQWHay+jmEhAt4GzzoGZ3ebBa/bscseUZ4Wy94DZwzU/WbPQt3vLNjHotc17LWYBwuAZr+tLvpZJ+Q619+cxqJvwd3dXex2u6JAZ7lcHomePQLM/OKoPVtQXLQqcraAPLbncbluy52FRv6R6sNzVtzD5xhRvitP5naz5WbBowaBC5DwwHuZ8PGM4YTjST8dFn0L2NJfX1+XLL3OPIMYeI489sFWCtY3s27sumdWniPmVdkC9ixGo9HREINRLwFkgcms8AfCZuHz82g0Kv7u9Xoly8/PCAxiaMTeh/4+/DuZZlj0DWEBIYiH+m9Yeh3r4j5ruoAEQIAsC3Lxd1nUcIP587oAn3ZE7GVgPzgG4GBg9jtk++V17lC9CLGv1+vSA1WLm80mNptNyRNBERLvOwvucRoT6wCYZlj0LUBumEW/Wq0iIo6CV7j4eepntqwWLDDeY/c2G6/Dyld1CKemx2bjYT1elhUAGvTjTo5LjCF2znLwAx0Af5/n1utsPh5moOPa7XZHHaA5jUXfAo7es+XCZ+zy4juox8/KbzEjjwWsD8BBOn5fl8ni4iFud/bQTiU7bt1vkVl7rl/g3wkdJF7j/c1mc7Rclj5rqhDH4HQpOgBzGou+IezW8kW+2WxKATpYvc1mU9Th8ywwfj0ej4+i/lnOHp/xFFONxqvodbzL43EmE3zm8vPvoCk1PXd19TNrz+4/L5WFmENm8XlOwM3NTbx9+zaWy6VLcFti0bdAU3d8IfL7iNpvNpvSLakxKQeC3+12MZlM0lzzcDiMiOMpszyllC18tsYeto/Ix+daOnxK9NxxqOg1bsBr3202m5jNZiXviC28xhnYjdepu7e3H24X/vbt27i6uoqXL1+WUoLmNBb9J6LjWRU9rwari0QOh8NYr9cxmUxKU2uzY/BMMR0eZPvmop1sOABU2E2sPNqUFc+w682CRccGV5/H/dxhcrvYO8n2u16v48cff4yLi4sYjUZFu5bLpYN6DbDoG1IlAlyUEC8i8ly7DhGiE8BMPV2+OSK3pugo0A6d1YfjsfA1fafxAX2dCV4LhLRdmXXGzTgh1OFwGPv9vlhrUJe65thCtjBoZv1h6e/fvx/T6bTIaNze3sb79+//nn9zJ7DoW6AudkR5uWjklTkCz+vYQ5i4WQbXqWsBjObzORWn7j3vl9875bJXibyplc9SjFx9yKm3/X5f6ui4TkBXA9YMBB8bHSxWxsECpTj/ly9fxvX1dRHY8zj/GIu+BZnYcGFWuegsfmyLi58FwBafOwE887F132wdq57xfX5u+joiX1tBc/vaIfAEHu4AtPw4yz5olSLagLTpYrEoViWezWZx7969ePToUTx//jyurq7i+vr6qLrPHcAHLPqWqFXV9FjVzC8WIAJcPBdcc9Aset4HR+zVK+Dv6XOVFa/7m8WSWV1+ze/pcXkmn9bYs+j5OctA4HiHw6HIjEwmk7i4uIhvvvkmfv3rX8fV1VW8ePEi3rx5E7vdrpTCtOg/YNG3ABco36uNJ7CwCHUVGGwP9x+VeCpwFX+2Co2O2Xu9XrEtu/NauMLvARUCf86fVUXs6zo5/d3Y/ef3M9HrsETbgDgHbkLy1VdfxZMnT4oVclerVTHEqBqudBWLviFsZTPRR3xMi6lrztYabq5+RyPVWVFKNvGlyuKyVVU3v8m54ln3z+m5TPRtYwh1Vl7bwe2B9catxrSz/JTz7goWfQsgel7mejweF2kiXjqLL0K2gvhcBZ8JSqenZsty433Medd742lgrMqK8znyM7dbPRCOwPP2mSeS7bvpWDvLbmg8Q1OZdaXEXceibwFEPxqNihTUeDyO7XYbEWVrW+WawhVHR4FtI6pvMKE17ZvNJqbTaVH1h/EtvA9emDMr2NE2VYle02ba2ajoTwXl9JHFAXA8zlRk7dTMRV0A0JSx6MngwS8AAAavSURBVFvAln4ymRSP7XZbChZp1D2zqip8FhWLn4WOarbJZBLT6bTU8SD3n93vXsfJOgzIgoUqeq17Z8+DXWn2NDTgyW1Qy8yLhaqHkP2mfCOROi+my1R1fhZ9C1j04/E4ZrNZzGazokosc42RYsrKYDlXje+quFjwmNkHoePeepjCWyV8nn2H42hAjs8R3+MZfdwR8QQZFSJqELLj89yBU1WF2kFx/ADlzBFxNDXZVv40Fn0D+IJCnh1WHqLPxrC8fTb+jfi4Qk1EWfQ8aQWCH4/HRYfDwmKBNRV9FoxDW7Nz4RJjXg4L7edZg2gf2pgVDrHg+V4B2lYcm9va7/djPB5Hr9crztE0x6JvAUfvx+NxzOfzWCwWRWqoahzb7/eLVWJUZBH5HHUsLLHdbo+EweW8WtOP93lcD1eYJ99wMI7bo9ZYRc+TabjOna08OkQIX4cZLHiOQ+j38JtwDAG/9WKxKI43Ho/t0rfAom8JXEu49/P5PO7u7o4uWk7xbTab6Pf7R5NzeHzPwo+IwnvAfjLRaJ09v8cWXqPZPITIUm68P/YOdMYb2qzDHhU9d1SZ6HlYwjf+RNCTg5uHw4fFRrfbbek24hZ9cyz6FnCwCi7+fD6PiChZXLa8Nzc3cXZ2VgTkUMjDq8Fg7MpFPXpcrBuX1d9HlBfXZGHp99ibyI6pQTfuLHQbCA3HgmhZ8HwLMO6k8DfHIqruAchDi8Ph45LcKL/1XPp2WPQtYOsN0cPK6H3p2apxZ6CzzNjyRxzPZgMszLpgFQ8pqoJbWWFQdo6aXkO7uAiJOwmcO1x6WHHtgLB/dBSDwaAIRmI7fA/Hg+jv7u6K8fzl5WWs12uLviUWfUsyaw/RszXTHDLcfLyPsTFec9luJny9qDXqX9depapjwfe1Yk6zETg+dyzwZkajUXHHmyxyzw928Tnqj/fZ2kPYd3d3RWe7Wq2KOwdb9M2x6FvCBSiwSih5ZateNX7FarDI7WtADGNn/lsDf1qsknkK3F6mqhPJtslEz9uyV4GFQzDmhlfDHoMeg6P37CnB0mNbrSe4vb0tBK9rEjhldxqLvgV8kUPEk8kkIuLoFtUccYebC8HzMlpc2BNRvgddVqqbvQ+aCFq/i9csFk3VnfpN0MFpnYHe00+3w+/G43vOUGRxBQQ161YcMvVY9A3RIBkED1eWx+jb7baIYk+n06N133mdOH7onWF4jTidcafpvyor10QUKvjsdfZ9DhJq9qCqJFbjBzznXScicdCSO1xkCdBBuM6+HRZ9CziIN51OC/dVhZktBc3PvEIsrw/PK8Ri4UidbMPH4nXjdDpvlRcQ0W6RTLyn1pZdfwiRU4Vq5dVTwTG5dLeusCjiYy3AfD6Pr7/+Ou7fvx+z2azkFZjTWPQtwAU6Ho9jsVhEv98vKvL4gtYZcFyvjio7XSKaRY/OgJeI1pr3bPZdtvSWxgOAWlw8Z1Za04IseB3GZAU2OB63B0U2HBTlfD1nADg+MhwOYz6fx8OHD+Obb76Ji4uLGI/HtvYtsOgbwhFnLgHlqHJEXteuU1G5Q+A6dhU6Hlz2WiX8LAWYBfwArL1aeM7pa9qOrb+mJCFcndbLx6sq+a2y9LoveBKTySTOz8/j/v37cX5+HqPRyJa+BRZ9CyD6iI+VeVWiqgu+1XUIbLV5DXn2IODOZ+69HkPJrD5b9Ezk7AngmV17rfzLIvbZ76E1Adl0YN4XdzI8w9Dj+nb0TgR6HBoV1KLr71f3t3YOVam3TCB10fu6R13bIpovh519B89ZZ3Hqt+P9NXnwMTlwWBUwNBERkf4oFv3fwaemi+q2a9JpVL2uS9mdEvynvt8k2t+UNpkDvLbYa7Hov3SadiJt8/Bt+JzCrSILIn7O/ZsCi96YjpGK3tEPYzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdAyL3piOYdEb0zEsemM6hkVvTMew6I3pGBa9MR3DojemY1j0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6RgWvTEdw6I3pmNY9MZ0DIvemI5h0RvTMSx6YzqGRW9Mx7DojekYFr0xHcOiN6ZjWPTGdIzBic97P0srjDE/G7b0xnQMi96YjmHRG9MxLHpjOoZFb0zHsOiN6Rj/DzU3Ky4oi7HMAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 25\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 26\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  32\n",
      "Current iteration: 27\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 28\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 29\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2duZIj2dGlHYlEYkdiycyu6u5i9cLNKAw1qr/wK7RRR+ELjI02yhjfYdR5hRFHG5E0o/RLNKMwrdC6yaKxyK7uWrJywb7lMkLZuXnC80YAkbWy43xmMGQBgUAAhXPdr7tfv6Xr62sTQhSHnfd9AUKId4tEL0TBkOiFKBgSvRAFQ6IXomDsbnheoX0h/nUpxR6UpReiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdEL8Qb5v//vO/vP/+s/7L/+7z/Z6XT1vi8nyqbGmEKILTkeL+1//J+v7OLq2v78dGSD5tf2P//Lf3rfl3ULWXoh3hCL9aVdXN00kB4vLt7j1aQj0QvxhnjQb9h/+7cvrFQyu9ep2X//95+870uKUtqwa6363guRk9XFle3tfhD2NNr3XqIX4oeLNrsQQkj0QhQOiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1Ewdt/3BYjNbNhkNJVSKbp/4Rt/n20olUrR8+e9RvH6aNdaIX64aNdaIYTc+/eC967w76z7bZ9LO24T7Gbj75jrnXZc1ms8fE3+dbFzpr23pgZ3Q6J/TTaJKiZwvl1dXdnV1ZVdXl7a5eWlXVxc2MXFha3X68S9v+FYfs319bVdXl7a1dXVrfdJux4vslKpZDs7O4m/+Tj/XLlctt3d3XCPGx/nPytfQ7lcTry2UqmE8+GGc+3s7NjOzk54Hv+W+PMh0d8RLyzgrS6Owz1E6QW+Wq1ssViE23w+Dzd+fLFY2Gq1suVyGe7X63U4B87L78vXE4NFDBFBcDwI+PtKpWKVSsX29vasWq1avV63arVqe3t7QcR4bwxqPChBwHt7e1ar1axer1u9XrdarRbOg0EAAwyObTQa4f1wnWI7JPo74EWbZrkh6PV6HcS5XC7DLSby2Wxm8/ncptNpeHyxWITjIXbclsvlLY+AryFtKsGwtfcWFILyN1hbCL9arSbEGhM9rgnXBwvPom80GuFvPheOrdVq1ul07KOPPrJPPvnEBoOB1Wo1iT4HEn1OIOz1eh1EyBbMW+7ZbGbT6dSm06lNJhMbj8c2mUzC3/w8BgAMEKvVytbrdcKVx99eSDGvAtebB+/i47G0ex4kKpXKLbecvzfveeB1GDzgMUDssPQ41+7urlWrVTs4OLCf//znVi6XrdVqWbVafb3/1IIh0eeERQ/LDOGz2KfTqY3HYxuNRjYcDm04HNr5+bmNRiMbjUbhudlsZrPZLGHF2UV/H5+PxXlXfEwg6zg/V2e33k8z9vb27ODgwCqVin322We2Wq3s6upKc/scSPR3ABYd4p7P58HVns/nQdDn5+d2dnZmp6endn5+buPxOFh3CB1zdBb72yySeVfgM2DwiInfBw/5xtF5eDKlUsmurq7C94fv7Ifwfb1LJPo7cH19bRcXF7ZcLm02m9lkMglz8slkYsPh0M7Ozuzk5CQIfjQahQGC3Xe44uVy2cxeiSOWeotZ3rQf+5sSwbaW00f8cePIuz+fjw3Ana9WqyFOgO/EzMLUZmdnxxqNhu3t7SmAd0ck+pxAkJeXl7ZarWw2m4V5Oiw5BH92dmZnZ2c2HA4TLvw2ATf/Y2YB8LUwGBj4ta8zAMQE5S02CxrPcUrNp+/YmnM0ngN5GABwvouLC1utVuE763a71u/3rV6vS/h3QKK/A9fX12FOPx6PE3N179LDwsONX6/Xiby8T/FlBeBixSr8mM+pxwpp0tKL/jj/2qwsAFt2zrVz2s0PAuVyOUT86/W6tVota7VaIW1XqVTC+yJzsV6vzcys3W7bxx9/bJ1OxyqViubzOZHo78DV1ZWtViubTCZ2dnZmL1++DBb9/Pw83MbjcULwPmUVq6RLq2zzAudiGfybLaq3tlwo46/j8vIynNfPq3HP2YJYkBEpOoi42Wxas9kMeXcfnOPcPo7F8UjTYQ7PmRIzs0ajYffv37f9/f0wOIjtkehzgh//crm00WhkL1++tOfPn9vp6WmI0nPAzkfkY0L3bEqNQdTsJuN5zIeRO+f5MYsX0xN/XRxFx3uYWRAfXG14LAiwIeXWarWs3W5bp9OxTqcTxAzhY3BAag6WHXn5Wq2WeF/ETxDsvL6+tr29Pet0OtZut8PgILZHos8Bz+fn87mdnZ3Z8+fP7dmzZ8GVn0wmIe+OVB5y7FlCN7tdw85Ch1g4fw3h8G1vby8ICFazWq0GIUFESDFygRGX1kL0uB4cx8VFy+UyfB7MzVutVhA8RI/rgaXHFADXhs+EQQGfGd85f4co6kFVHgqAxPboG8sJRDObzYJr//Lly2DhuYIOwvJFKYwXOpfAIi8NgSDQxe5ws9kMjzUajVCeymWq7C7zZ/ADkpklvAf8DeGhohCVgghKmlmw3s1m01qtljUaDWu1WrcsvB9UcOOiHj+VwTSEA5UYADWfz49EnxMv+uPjYzs5OQnls7CAbEFjFXKx+Tn/8GH5eI4M67m/vx/+brfbQWQQPubRtVrtlnuPa2Ah8fX5GnvAngGEj4g6qus4Eh+bx8dq+NPy8z4D4b0kDB4SfH4k+hxwNd5sNguR+vF4HMTu58m8MMfDAmDLB+sMq7m/v2+9Xs96vZ71+33r9XrW7XYTc2ZYddzYlY6tRvOr8Fj03vvgaQ2vKWAvIRa992LPuvmCHLw3rpWv2wcxY/9PIr3OQqLPSSw/P5vNQrCJU3GbFrfEClTYsu/v71u327XBYGCDwcAODg6C6Pf390OKCwtdYmLzYspK3flrZPyiolgWIquyLhacjH0XsfeODQRZ1yrrn41EnwP84FerVVgJN5lMbLlcJha7xKrn/A+Xo/AITNVqNWs2m9Zut63b7Vqv17PDw0M7ODgIwoeFZ8HDhec5M7+Hf/9tSCvw8UuG/eCWJuA0ccYGgTzXG6sxENlI9DmBpfcr4pBTjll4/2NmCw93vl6vW7vdDq48LDtucOnb7XZqRDytdn2T8GNxhtj1w7Xme369P/6uIswjeJ5+cE4fdRFFHgju378ffVyiz0Esio15LZfJsjBi7igH7CD4TqeTsO6w8HDnEbTjqLxfiRabO+M9s9hG7P64LNFnfX+xx+4iTD/d4DjLs2fP7Pj42JbLZcLbKdpc/ze/+U30cYk+J7D0HKFn0XPU268w4zkvovOIuvd6PTs4OAhih+ARrefqtm3Enib4uwjMu/qxc25a/BMrM95mTu//zedBKfRoNLLT01M7OTmxp0+f2uPHj+3777+32WyWSDsWDYn+DQGrgltsPguRc0oJjyPCjeqzdrsd3Hm28BysQzcZ7iKTFvTyeJFuKg56E8RiABwH4JqFWPTeryHwoBR4NpvZ06dP7S9/+Yt9/fXX9s9//tOePn1qx8fHNhwOQw3BpmkNSAtgxgYePj7NW/kQzh9Dos8BR659hB5fOFt8n5vmKD0KaBCd94LvdDqh2IYFn1WM4ufaMbc264eRdVxeFz4t2s+98nyaMBbx91MICH4+n9vJyYl9/fXX9sc//tH+9Kc/2d///nc7Ozuz1WoVzltEC78JiT4nXvRspSB4XujCNfHIYSMth5Rcv9+3o6MjGwwGwaXnxSex4hqIicW5s7OTeCzLioC0qHra/Dv275jQOZPh+wVyGzBukuktvj8PC/7ly5f2j3/8w/785z/bV199Zd98840Nh8PM6xWvkOjvQMy68xybu8RyOo1r4xuNhnU6nVBwMxgMgoX3q82431wsIp2WMuNrTCPP/Dz2fuzt+LQli53Ld7l6ETERf+04j+8NuF6vbTwe23fffWd//etf7dGjR/bs2TMbjUaZ1yxukOjvgE+7XVxcBFGzJUfuHY+jWg7PI0jX7XZv5d/9/N3sZnoBy8hdZfHYNsU4/Dn832m58iwr7+frXuxobzUej204HIYegWgsAqsfmw5whSPup9OpHR8f27fffmsvXrywxWIRrosX6og4En1O4LbDkvviGuTbkU/HnBxRd0TtYe2xKg3Hc826ry3nIBhcYWQOOJIfC4Rl5dR9FN2/Nu0caW481+dD7Ofn53Z6ehpu6Dfglx/7TT84Q8Lr+bnPIPM+mon+qyHR5wBC81bbzKzVaoVFMb423ltu3+udBwffaQaw9YPYfM7fp/DMkgL1C39iab400WdF5L1lR4NQ9AuE4I+Pj+309DQ0HMGqRN6ww7f75nLfrHUMYnsk+pxwBR0stZkFFx3pt36/b91uN1hvv/CFe71jCgAPgpeYxgJZEIKZJdKAaaJHUVFsW6lYyizLQ2DBs1XmKsXpdBpaf6NPIHoGwsJPJpNERaNfpJTWO1C8PhJ9DjCHR7MIzMd3dnYSZbNHR0chCg8rzxV7HPWH0HFLWxEHEcQaX/j95Pj1Pk0WS5f5yDm/r5+z+7Sld+XR79+3DsNc3ncE5kHMvxeuD9ci3gwSfQ4gMATh+v2+jcdj293dDdV0h4eHdnR0ZN1uN+y+wk0eYyvT/BJUhoUAsXPKyxf9sOj969iF5lZX26TKfE893twDEXne4AMtw7CbD0fssQ6fOwK/zq48Ih8SfU5g6ff39+3o6MjW67Xt7u7aYDCwo6MjOzw8tH6/H+rkuX+7d4lj1jY2F/eWHv3iuIFFmuj5NX7u7K0ppwV9YM5H0HEepOF46y4Wud9/L2uuzp9bvD0k+hzA0lerVet0OnZ0dGTX19e2u7sb5vJY/tpoNBK96cySG1+Wy+Wo8Hygil/jt86CcNjFZ9HDykPwvtEHW3uAgYJ7zeOet8+Gt4GgHUfTuYMQrtkXNXGKT4J/t0j0OYBF3tvbs3a7bYeHh8Etxyo5LI5BJN4H5LwLj8IUX2GXFcTj2n8E9Fj0PIBwM0t2r7mbLY7F+3HlHI7HikJfVceWnC162oYePhAIJPh3h0SfE8zBG42G9Xq9YMXR2so3o2RXm4Nr7M5DuHzPoufgHQsea8bNLOTssfUTzsPzbt8DwKfBYP3Zm8DxXtAQPQ8APBBl9fd/12k31eAnkehzAlcaK+TMXv2YkbPnfDyvhuNSVT935zp+s+QWVjyHjgmNg3nsTeC9OAbAbj5nANij4Lm6v+F1mB7g/XlQiqXbvOjTvte3JUwJPkmm6PVlvcIH15Bqq9VqwaKlNaFMK2WN5d0h/IuLi0QgDi46u9AckNsket6kwle6sTX2DUJwg5fAA44P7MWsuy/owffBKUv2apSeezfI0ufEV8Oh9p5rvvHDx4+aX+dLTdkljgX1fC6c59A8p08TvRd4WvTcL26Jdb3NEnwsMMekrfzDuoGs8tltSoLF9mSKftMKraLhI+wscETkce/TYAiqcTSdBRyrPoul3HhPe1+gc319HaYVZrdFzx5FWmmrn3fHagu2nZenLdvlz8e1AngsdnysfiGtYm9nZydsgslrEcQrZOm3wOfJ2eWNNcbEsfjRmd0IkOfLfjccb+18+owDahyI47r73d3dREaA595p7re3tFyw45tt+uc56+BXuLEXwuf2x2wzeMSqBTn9h7+r1Wqojux0Olar1cKAKK/gFZmif/To0bu6jg8Cv4TVzBJzdQgXy0Unk4nN5/Mgel5Eg0o8tro8X+biFbb0sHw8HUhrQOFjDMj9x4pz0txxPgdey1tP8RQG6wUAt6PCgIKBAF5H1qo9fNcxV90vAvJtvfF9V6vVsFipUqlYo9EIlZG9Xk+ij5Ap+j/84Q9v1cX387v3dX4/l4a4d3Z2EnuywWJdXl7eioSXSqWwlh4da7HXGs6JNNh8Pg+3WM6cryu21BSPmd106YEgcd0YpLy153m3F4Iv6a1UKrdcaLwflvRynADXnCbetO4//lr4NZz25MGoXq9bt9u1e/fu2YMHD+zevXuhpyCWNtfr9cTGneIVmaL/3e9+966u44MBFnK9XtvOzk7YaSbWugo/WggNEX0WPSw9BopYCoyLVNJcWC7dZXGwRea19bFgIM/rYxF2iGN3dzfh7rP156wBTxnwPv41vm0YR+19Lb8fLHyPAPxdq9Ws1+vZgwcP7Mc//rH95Cc/sYcPH1qv17NGoxG+97TS5qJTyvoiPv3008J9S+wWm1ki/w73kde+83yVm2n45/16c79ENtbK2gfRvBDTdn/Fc2bJbIJvRuHPB/h4X4bLy2B9nh/fH3se3DYsViLsMwSx8/D3Ui6Xrdls2scff2w/+9nP7Kc//an96Ec/sqOjI2s2mwraJYm6uZmiL5VKhRN9FpVKJTS9gPuIFXRcosu98WA9uXyWBYfXxfL8PoLOlpJf42++AYf3GGJRb+9+43WxVF9WXICbhPAutmkxDgyEKB6KfTe4FrxHp9Oxhw8f2i9+8Qv78ssv7eDgIOxVL9EniIpe0fsc8I90Pp+H4JGfg7KAzZLRf567Q7zcKRdiZjitFXuNFz2uI22q4C0zH8cWNpZeS5uDs3XnPoC4QfQ+m+EXA/HSX1wj/o1AY6vVCo1KMPXS3P02afEsif4OXF5e2nw+v5WTh7X0uWGf9+Zj2Q3G37F19TyooB4A6TkE3HgFH+IMWcLFeSHY6+vrWx4EPl9sgw0eiPy+fOgsFOvbb3azehAW3hcd+S64GBDMbtY5cEeiTVkCcYOKc3ICi8lVd/yDS2uE4XPwPuoOi71arRJW2levQexpBTQQIA88fr4eA8LG+3ATT95Gi6cf/Bl83z+I3rv2sWXGvC4Af3P5MBcyXV5eJrb38h6J2Ixq7+9ALLcMq4daeH887jktCMvN7j+sd8yiwjOI5ZxxDkTeOQiG9/LXgnPjnl1+7MTDQUm2/l7wvFUX33ijTR4Q+TPzgiIWPe7n87nt7e0F74o9I55aie2Qe/8awOr7kts00fPf8ApQ4OLPCavL5/bRdtQH+PPwwOBd89gAFJt6IF4AIWO5sN88E4KHZ8BdgmNegn9PuPAc6fcDAHsIq9UqOoiI7ZHoXwNvbb0o+d+xIhhYZASoIGIcz4JHhRvm6ngN8vOw1F4EOJYj4bhWnJcHA7wG0wSIEWLm4KFPF7LoeWoQi3PwNXBKLlbyiywCUoRp/QTFdkj0bxDvvvPj/jhfsopjYtMDrn7zqTw/r/fTDBa1n8/zNcRq730VHOb67ObH0oW+FXdarIMHPvZOsJ6gUqkEkfN0QoJ/PZTU/EDxc3oh3hSy9G8QFie79959ZsvnA1GxRSpclONf460yR9b5vGnufew59h64KAcFRrHjcJ2YbrB3whadiZXi+vfyVYRc4y/uhkT/GsTEyf/mUtjYa33qy+fF/bm56Cbm8voa9djKNFwLn99Hv30ZLtYhXF9fh5qA2Co8Lv4B+HcskMeCj/X/S0vl4Rol/Lsh0b8GbCGzUkexiDkX28TmxVkpO67cQxSb59g8cKQtOvGpRn8MrxUws2B5N6Xslsul1et1W6/XuVJ2nKaLpeywOhElwLiX8POj4pyccEmst14+YMVBNx/Z5yAZF+dARLEBhC0rp8M4h36X4hwfXedqObObFYK+OIeDfLHiHNz4Wln0vB6By3Ex2HDXIF+c43fq4QFVZKPinDvAFveuZbh+0QyX4cL1Ztgz4Cg60mixwpk8Zbh+YFiv18Hic4wAr+FritXdowQX1XOxjT/8ykPfZhuiZquP16JRp6x9fuTe34FyuZwoBWX3GKL1Pe/xI09blcZC9m4wYIH6BTf+fWMLZjDn9kFGFjFfJxf8ZC244c+yacENBrSsNmDededAXqn0qltwt9sNG3DgWB8wLTppno9EnwNeT8971bHoUaACdxc/RN/9hvvH8WDhq+e8uGJutc+d87SDo/AcWfc/CO92c7Sco+tZjTjgEeCauBQ3trSWF9LwXnfeC8F14ftaLpfWbDbt9PTUer1e+D/Q0trtyBT9p59++q6u44OCy2u5pNRbMDTJgJXhea1vosEttnz3GTOLuuR+Mc02TTQ4ug9YuBhQYufz78dNNHgBDPfbS5su8Dwf93jMLLngJq2JBguZ4yiz2czK5XJi0N3ZebXkVmwmU/S/+tWv3tV1fBCwQCGQVqsV9pmHBYc1xuCAHyqsG7u0PIflHnloiBnree+tLgskZll9jIFde/YyYtbdu8N4P8yr/Vw7rV1WbBDhuAWnD3FdHMHP0y5rNBolAn74TgeDQRiMVZuf3CmJyRT9r3/967dyMR8yPK8tlUqhMWa1Wk3MRzn4xI0xfdQaP1hYeggeO7zyvnIsZhaF35WGo9YsjFidO3sTZpawzL5UGI/jfXhJK/f045ZZLFqz29kBXzzkpy5pTTl8mtJPa8bjsQ2HQzs5ObHvvvvO7t27Z51OJwzS7XY7xFzgxRSNX/7yl9HHM9tl/e1vfyvcN8WBNzNLuMwQxHK5DHuxv24LbFhRWHGG3WzOXfPiE7NkKs/P52NpMY4rxKrveGMNv/FlTPQ89zdL74gbg4+NvYbF7wcPBA0RVN3b27NGo2GDwSB0x63X66nLkX/o/Pa3v83fI8/MivUtpcBuKDarmEwmNhqNbDqdhig3ryePdYrZtNlFmug50MW5bDzvq+MgCt+dJpYS4892fX19a8datOr2e9uzlfcNMmOLe9ICbNuk3Hz9A/5P+Pr5/6DX69nh4WHhN7v4/e9/rx55d8XPL80sWHz86Hd2doKlx9JSPh4/Uk6pQaTVavWWpedgG+8FD2se29aKRW92e8tr7onPbjZExXXtPoDI4vTP4zEePDw8xQAxK+9f62sD+LXsXYDFYmHPnz+38/PzEFPhFKVQcc5W+Jy5dz05VeWXnfJrfVQe50O3HD6GpxN7e3u2Wq1uLVWFtfc1AjHRo3ceV9Ph/Xkdfuyzxda4Z7nsIPb74cf4O8haisz/B1nHgKurq+ChiNvI0ueELSTnrf2KNRaX2c0PnNNZsFRpxTKwnljwwufBAMENMnz7a5zz6uoq4WFwjz3+XDi/rwFADABbWq1Wq4QI4Vpz4Y8vlvFi58+X9jwjA/TmUO19DvB9wFVGQA4CqlQqUVc45qKyUM1u0ive9eYBxS9B5eOzRM8eg3fB2VXPalCBnDkGBN/Bh/e1w2DEwueIPd7XC17CfjfI0ucEQlwsFiFtZPaqLTOX0vplrVnpKV7m6lfFecHD4nJRD45Lc+/xNw9IsOR+To5uu7wmAL3rOE+PmILP3/OUA99V7Dvc5jHxdpDocwCxXlxc2Gw2s7OzMzs5ObFyuRzSdr44hgt5OLUVWx3GBShsIc1uXHSIkPPibOl9HIEHAbObQSa2WIVTfAhUprWm5hQgCo18dgDeAD63+DCQ6HOCaPp4PLbj42N7/vy5lctlWy6XQaQscsylecDwNewcB4itjvOVbRA9BOUDiZyy4wAejuFFLcB7BNzUgnP7eC2nAReLhU2n0xA8Q7qPBwiu++fpBAaDWHWgeDtI9DmAJVwulzYcDu358+f25MkTq1QqIX/Nx/mda7kAhlN07M77yLgP/CFuYGbhHGzlY8U56ExbrVaj+9tzwNHsRvg8OPl7nAdbfE0mE5vNZjaZTGwymYRBIG3nGrxPWuBPvD0k+pwggDcajez4+NiePXuWyJvzIhWU77K194E+BMhiK9ZwzyWo6BCLFJ2ZZYqey3i5bp6FxnEEtvicC/eVd75UlwU/HA5D8RIe8xWIpVIpsXRXwn93SPQ5gHs+n89tNBrZ6empHR8fh+g1C2s+n1un00nsl87nMbNE+gwueqw4hd17WPlyuXzLtfcVeWZJd90vkPHn97l3Djr6ijtMD7iCbzqd2mw2s9FoZMPh0IbDoZ2dndn5+bkNh0Mbj8ehdBlVhX4tAb+H/+7Fm0GizwFH7mHRzs/PzSy5CysE0O12rdls3lqdx1YbVXxc5MMFN4Bfw3l934jDp93SqutAzNKnFcLEBgCu7Yc7P51ObTwe2/n5uZ2fn9vp6amdnp6GAQDly/P5PLGOnpfqZlX3iddDos8JL7iBS2tmwV1l0Q+Hw7C7Kvex491gGo1GIpiHLIBZsrsupgcQN+byXNIbE71ZvE0WiFXgpdVnxMTPc3/+/PhuRqORnZ+f28nJib18+TKIH1OA6XR6ayEPMgu+YYefAom7IdHnAD9yroVfLBbBPef2TxA979yKBpFYmNNsNhMBwJjoeG7P6Td2y73gYwU2aQUw/j1jhUT+HPjbexGYPniXv9/vW7/ft4ODAzs5OQkWfzwe22w2Syzk4WChHwR4IEDwcLFYvNb/aRGR6HPiXVrOR2Ouu16vbTab2Xg8TrSBhvDROLLT6YRFO2a3l6Aiz+7r4HmKwKKPzc3ZzfdsEnpWvXua1WfLj+2qm82mdTod6/V6dnBwYKPRKAgeqT248r6egef9+K6n06m9ePHCnjx5Ys+fP08In8uVRRyJ/g7wD537sF9fX4fBAPN+7vvOLbeazWawcr4RpBcUCzpN7OzWx0SfRsyr2Obz++8CfyP/zjvZ4vO2223r9XpB7NzYEu/P1+ADkBhQx+OxPXnyxPr9vj169MiePn1qw+EwUdor0pHo74C3nhyE4lTW7u6uzefzUCLLDSPr9fot1zYWKKtWq4n3zHLp84o+7blNc3r+/Jxi4xQgl/p68bOX5AXP1YxmdisACdf+iy++sIcPH9r9+/ftq6++sm+++SYEVUU2En1OWHC+ph55Z7TP8vX3HMSr1+uhfJU70PgfeKyAhl19L3h/jGdbax5z7bMGidgAwOLnSsJNacNYIBL38KY+/fRTe/DggR0eHlq1WrVSqWSPHz+2s7OzsCuPcv5xJPoccI07z7XNbn6Y/EPGslf8G8LnWnXf+y4mCsvRTEMAAAijSURBVH7/WC6fn+f38o9v8/k2PbdJRP592fqjLDn2ubzgs64FA2Kr1QpTpqOjI/v222/t2bNn9uLFCzs/Pw+D77bXXhQk+pxA9Fj44i0Sr2Hn15jdDAQQgA9QceSa57Exi5glfmZTcO5tkSZ+WH72HNJShmkZBHwPjUbDPvnkE2u32/b555/bycmJPX361B4/fmzff/+9zWaz8H1J8DdI9Dkpl8uJDS1g9RmfD+cVZmytWeBcMsu17T7I511hFkgsHefd8jw//jQLGQs4bnuutClHnjgEPhdSoM1m0w4ODmw+n9tnn31mn3/+ub18+dIWi0Vqf4AiI9HnAILlKLzvg292ew7qz4HKPu5gg8c4Sh2rl/dr8vnm21/Hrt/D15eVoot9rqzcf+x8WTGGPBkHfwyKlqrVahgAVqtVop+AuEGizwkCUuh6W6vVQvGIWbIvHfB/w1pzmync87JWpLWwUs2vVru4uAi93bH6zveJjwXZ0kgTb2wwizUEwWtiAs4TVMwKGsbAZ8X/TaPR2Pq1RUSizwF+XIi+N5vNUFUHoWL+6JtGeEFhcECqb7FYJKrO/Fr12WwW7mezWdjYARV/WD7rV9ttmgZkFe3462ePxJfG8vezTQqRB6NY0HHbKYMseX4k+pzAvccmlq1WK5Scmt2O4sd+vF50fokp97mfz+c2nU5tOp3aaDSys7MzGwwGtr+/nxA+bwntB4BYaW5semCW3umWpx9+Tzte7ed3040VDcVuXEnnB4jYIMVz+03TkqKSNiBK9DnAjxMuZLfbtV6vF8pw8UNEFx1uFwX8DxiNJHiFGc/tsXgFC1c6nY4dHx9bu922/f19a7Va1mq1gtfht4eG+H0Pfr8+nlfteSuN47mTDm/pxa28sIgIxTi8/bbPxcdusUEnNo3AZ4nFL2T9s5Hoc4Jce6PRCDupQNy+mqxUKgWXP6s8FJbSu828DdZkMrHxeBy2ysYeexA6LD7f2PL7tl0+VQhB+Yo/Djz6DSMherNXvfuxpoAHIUw9sCSYlwDH9grw9Q/4fngqgfNgK3CJPB8SfU5Y9P1+346OjkIk3u8Tv1wuw7zdLNvt5OcgRPSQW61Wtru7Gxbx8Go9iJr/5iCj32LLC54zA2aWECY32eTyYg4qYsBCcLPZbIapB6Y/vOMvgo648XX7TsKArxdZCrzXNsU8IolEnwP8uMrlstXrdet2u3Z4eBhEzz9eH0hjF94snuOGFYZ15fkrqssWi0W4BoiDN7JgQeFaYGVRH+DTgr7c13fhMUs2CeFW12x5kTJrtVq3Yg4QNy8+wqCE6Qg8E6598O+L/Hyn0wmDja+TENlI9DmB4Gq1mnU6HTs4OAg/RP7xwuJPp9MgeFhudlXT8vt8b3YzBViv14lridXjs3B5BR6fi6+DRY+BhNN+eA0H82J9/uDi12q1WwFGeBsQKe/wi+W3mKpgW/BSqRSmOUhbmpk1Gg37+OOPg7WHmy+2Q6K/A0jbtVot6/V6ZmYJ0fMPHGJAvT0sJFfiZQmfSfthpxXBbBJC7L3yvhbHYqBYLBZWqVRsOBwmNvKEt8HTB+4tAA+BBwl8L8iOrFYrMzPrdDp2cXFh/X7fBoOBovU5kehzgh/47u6u1et1a7fboSgGc1RYM29t8TdcdQT4Yr3ftylx9cfEgoWvI4iY8H20nAcJ7pKLAYAbdfqoPVc3spcE0fvGJBB9t9u1RqNhX3zxRRhEVW67PRL9HYBVQ3qKy0C5Qo6DbMPh0KbTaWIjCA6EsfhjKao8gn6bli+2Uw1PA3Z2dkKsADvp8BSEX8PTENQW+IETn4e/n+Vyaffu3bPpdKrmmXdAor8D+LGiSIer9GCtkDZDx5h2u22j0chGo1GoqsMA4HPzH8qPeNvrgCg9HFVPy6dzCS0PALxFFxfh4PnVahVd2yA2I9HfAcxLa7VaKEyp1+shqt1ut0ML7MFgEFploxkkxI+NILAdFHfR8dtO/avhK+2y4GIhTHk4SMhBRQy0vJ+A3Pp8SPQ54aq8er0e0neIaMeKWFBGiwIbiB0toNEDHu2zYhtB4oZ5s+9Ay4tgYv328nw+zgLgsbR7jlVwqi8mRt/CGq+HmLnewLv5XAswGAzsyy+/tH6/H+b+Ev72SPQ5YdGXSqWw5zt+zL4jLAehsIgGN15FB2sP8WOw4GP49fibd5DFgMNz4JgLHIvWm93eNTet2SYHJnkuzkG4tDk5p/u4sg5TIr7n6D+nBDudjn300Ud279690CpLbI9Efwc4aOVFxRaWBwI/IPDiFb/tMw8CsP5w/73o/RbSvjGHDwqmpQJ9jj+rJp7z8igCQhDTFyjhPf3mFXhfFr0v0uEqPVwH3ofToxJ9Pkob3D9FSTawyX2OWVlOsfFSVe/K82o2lMtmtdZKW/K6ydVPW/UWC8TFUm++ft7vp8ef1XcV4mkB1zXElgezh5G1sYcIRL8Yif49kOVue0/BP5Z2n3V82vunFfXw3zFBpR0Xezztc8bOmRY7yHNtIoFEL0TBiIp+cz5FCPGDQoG8fwHuUoByF9f3TRe6+Gvw55d7/n6Qey/EDxe590IIiV6IwiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TBkOiFKBgSvRAFQ6IXomBI9EIUDIleiIIh0QtRMCR6IQqGRC9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiCIdELUTAkeiEKhkQvRMGQ6IUoGBK9EAVDoheiYEj0QhQMiV6IgiHRC1EwJHohCoZEL0TB2N3wfOmdXIUQ4p0hSy9EwZDohSgYEr0QBUOiF6JgSPRCFAyJXoiC8f8Bf9DJgMO2VzwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 30\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 31\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 32\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 33\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 34\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 35\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 36\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 37\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 38\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  64\n",
      "Current iteration: 39\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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6TRWV1exsbGBTCajwh+Pqxukon9AplkU7K459ngsilzGAdhMU4qfR2XstiN77tmClx6BHIUtRU/B2plyMpVWJgAxlmHn/fOs3W5nzfdk+q6Mh/D0QxYO8X25ENgTehVXVPSLjOyeI915txZacpGQj5cdZt2SgaY5MrStulvvff5MuvQyrVZG33nsZg+sYMMPOX5bCtqtWu8pqvY+cFT0HxqTPIVxj53m9STziui26rhZTwseqw+Ax1DRK4rHcBW9RkAUxWPokd2C8VDn6bL/+6Q+8IvkWi/StXxMqHuvKB8v6t4riqKiVxTPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPoaJXFI+holcUj6GiVxSPEbjl332PchWKojwaaukVxWOo6BXFY6joFcVjqOgVxWOo6BXFY6joFcVj/BcDKQDdDvHfEwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 40\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 41\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 42\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 43\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 44\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 45\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 46\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 47\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 48\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 49\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 50\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "current beta:  128\n",
      "Current iteration: 51\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 52\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 53\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 54\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 55\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 56\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 57\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dSVObabbn/xKaXw1oQBMYsEGRJLaTzLRdlbmouhV1NxV325v6Ah29601/id72V+hl7+6yKiprcyuiqtKZ4Urb6TSeAINAIDTPQkMvHOfx0YuEBsRg3vOLUIBBwyus/3POc54zmLrdLgRBMA7mq74AQRAuFxG9IBgMEb0gGAwRvSAYDBG9IBgMy5DfS2hfED5dTP1+KJZeEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4Qpsh//iuJ//g//4X//n9/QLbSvOrL6cuwxpiCIIxIutTA//p/P6HV6eLFQRFB7SX+93/74qov6xRi6QVhStRP2mh1PjaQLtVbV3g1gxHRC8KUuBVw4X/82x2YTEDU68D//PfEVV9SX0xDptZK33tBGJNmqwOb5VrY075970X0gnBzkWEXgiCI6AXBcIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFgiOgFwWBYrvoChF6GDBS9sMeOgsnUdx7ijXvNm45MrRWEm0vfFVMs/SVy1gIrFk24LET0lwgXNl8ARhF8t9vtuel/d1Xwa6fvTSZT3/dE16l/74PuL1wMIvorYtCHvNPpoN1uq6+tVgvNZhPNZhP1el19f3Jycuprq9VSjx1ngdCLlW5ms7nvv81mM8xmMywWC6xWK2w226mbxWLBzMyMes12u63eD10ffw673d7zOHoNWRCmj4j+iul0Okq49XodjUZDifjk5AT1eh3VahXFYhHlchmlUgmVSgXVahXlchmVSgWlUgnValUtCq1WC61WSz0/0N/KElzUAJTw6EYCpO8tFgtsNhscDgecTifcbnfPTdM0OJ1OWCwWmEwmdDodtVjReyPROxwOaJoGj8cDTdPgcDiU+Ok66Pt+1yULwviI6C+YbreLVqulxEvCrVarqNVqqNVqSvB6S06LQbVaRaVSQblcVkKv1WqoVqvqOWu1mlo0Op0OWq1WX0t/FiaT6ZTIubj4v+12O+x2O5xOJzRNg8vlgqZpcLvdcLlcsNvtsFgs6m+g90hI9Ha7XT3W5XLB6XTCarX2CN1isajFRtM0+P1+RCIRRCIReL3ei/qvu7GI6KcEt6SdTkcJr9lsolKpIJvNIpVKYXd3F7u7uzg4OEA6nUapVEKtVlOiIFeYvnI3X39rt9s4OTlRvz/v3p4WqLMgr4BbXBKl1WrFzMwMrFZrjxWm66K/S7vdBoCehcVqtarH6xcZk8mEdruNmZkZBINBrK6u4uHDh/j222/h8XjE2o+JiH4K8P1zq9VCrVZDsVhENptFOp1GOp3G8fEx9vf3sbOzg52dHezv7+Po6Ai1Wu2qL38s6H3StuQqWFtbg9lsRiKRwJ07d3quTRaA4YjozwEXAFmwarWKdDqN7e1t/Pzzz3jx4gWSySQKhQLK5TKKxaLanw+zqtPiLCFcZeR/Ura3t5FMJlGtVtXPPsX3cVWI6M8Bt3iNRgPlchlHR0d49+4dnj17hsePH+PZs2fY399XAbWrus7rjD5eQF/pdxT5p0U2GAzC5XKpQKEwHiL6CSFXniLsuVwOe3t7ePXqFZ49e4bnz5/j9evX2N/fH5qUM+o5fb/HAlAC4fBju7MY9NqjRPn7PZbiEOPg8/kQCoUQCoXg9/vh8Xhgs9lgMpnQ7XZRrVaRy+VQLpdhsViwuLiIr776CsFgULn0dF9hOCL6CSHRF4tF5c5vbm4qwW9tbaFYLA79II4bYdc/FsC5vIhxXptvZ0al35k/P/bzer2IRqNYXl7G8vIy4vE4/H4/XC6XsvKlUgnJZBKZTAaapmF1dRWff/455ubmTr2WMBwR/YR0Oh00Gg2kUik8efIET548wZs3b7Czs4ODgwPk83l1X7KMZ52Vj4I+Gj4qZrMZNpsNMzMzKv5AJwUXgdPpxNzcHMLhMGZnZ6Fpmjp7pwi93W6Hw+GA2+1GIBBAJBJBOBxGMBjssfSdTgfVahWZTAbFYhEOhwPhcBjhcFgi9xMiop8AOncuFAp4+/Yt/v73v+Nvf/sbUqmUOmvnTGs/P45ILRaLEpXL5VJ7YABoNBrqXL9er6tjP3qcxWJRGXIzMzPodrsql6BWq6HRaPS9FrPZjEAggPn5eSQSCSQSCSwtLSnLTc/Jb3TeTzc6o+cLZbvdRjweV4FPngUojI+IfkJKpRK2trbw/PlzPH/+HO/evTsl9ovEZrPB5/PB5/OpLDjKkqOvJHaXywWHwwGLxaIWrEajoRYoypADPngTdGZO5+0kPFokKAmIUmqBD4J3Op2YnZ1FLBbD4uIilpeXEY1G4fV6T2XakcWfBH6twviI6EeEnwF3u11ks1n8/PPP+Omnn7C3t3epgne73WoffOfOHSwsLCAYDCpXmkTucDh6stvo+vX5/TyuwJNveJCRko1owaAbeQgzMzMqO4+n5NI18KSb84pVxH4+RPQTks1m8erVK/zyyy9Ip9M9v5t2JNlsNsPr9SIQCCAcDiMSiSAej/cEv4LBILxerxI8ueYXAWUCUkotAGW9x7Hg541tCJMhop+QUqmksusajUbP76YdIJubm8Pq6iq++OILrK+vY35+HoFAAH6/X7n33H2+aFHQmbrD4TiXq30R1ynHdh8Z9PcV0U9Au91W+fT1eh3AR7d4WkE7su7RaBQrKyv44osv8ODBA6yvryMSiajCFCqO6cdFCaBfDf2g171sqyxewHBE9CPCP0w8EHZRhEIhrK+vK+tOkfBwOAxN0wYK/aIZRVQivOuNiH4CqOb9InLnHQ4HgsEgPv/8c3zzzTd4+PAhEokEIpEINE3rKVcFzhaYEcXX7XZV2fE0Kg8/ZWKxWN+fi+gngCLX086ndzgcWF5expdffokHDx7g3r17WFlZQTgchtvt7ulEQ8HCm1pZNqpY+Xtvt9soFotIJpNIJpMoFovqdIHf1ygLwR//+Me+PxfRD0Evqna7rRpdTHP/rmka5ufn8ejRI/z2t7/FxsYGYrGYOuMmkfMjr5sodmLU99ZsNlEoFJDP51Eul5FOp/H27Vu8e/cO2Wy2R/RGQ0Q/Jei8mppYjIL+A6y3ND6fD4lEAl9//TUePXqEjY0NLC4uwuPxqOy0myRw/fs/z3srlUr48ccf8a9//Qt7e3vIZDI4PDxELpdDvV5XeQj9XmeU6+jnSemfb5C3dR2evx8i+jHhHW1GdRMH3c9qtcLn8+HOnTv49ttv8Zvf/EYVktD+nZJkbhKTvh/aztDfv1Kp4NmzZ/juu+/wl7/85VSRk1Te9UdEPwGDKuPMZvPILr/b7UY4HMbKygo2Njbw6NEj3L17F/F4HHa7vaem3IjwxiQkcvKyyuUykskkXrx4gcePH+P777/Hy5cvT52miOD7I6KfkEk+UFTt5vF4EIvFsLq6igcPHuDLL7/EysoK5ubmVNHJTWv9rO8yRNsjyt/nwqafU99A3hfw5OQE2WwWT548wV//+lc8ffp0pBJm4SMi+gkYNKBBf4Tndrvh8Xjg8XhUlZnL5cLs7Czi8ThWV1dx9+5dJBIJBINBlTp70wQPfPibNZtNFItFHB4e4ujoCNlsFuVyGY1GAycnJz2WnYucfkY/LxQKePXqFX788ceeHoOUqDTO1suIiOjHRN/aif+cPmgWiwVerxcLCwtYWlpCLBZDIBCAx+OB2+2Gz+dDMBhUdeF+v1+1jL4pgueWnZqFFgoF7O7u4sWLF/j555+xvb2NdDqNarWqTkPo/sBHF5837qA9PbUP59D9hbMR0Y/JzMxM31ruTqcDh8MBj8eDaDSKpaUl3LlzB8vLy4jFYvD7/dA0TVXB0Y3c+Ztm4alJaC6Xw+HhIVKpFFKpFN6/f4/NzU1sbm5id3e3p9nIJFDpr1j20RHRD0EvQprKQiWjhMViQSQSUYG5e/fuYXFxUVl4ypXnpa76YRLjCP4q89v7wSPrzWZTNQl9+/Ytnj59qroCHx8fI5fLoVgsTqX9twh+fET0E0AdaXw+n/rZwsIC7t+/j6+//hoPHz7E2toa5ubmYLPZThXFDJodNyr6Dzo/xx3W6PKsBpuD/t3vOfh8OurEQy2+8/k8MpkMUqkUXr16hadPn2JzcxNHR0d9n3dYAY/+9Ye9H+FsRPQTQF1rFhYWkEgk4HQ6sb6+riLxq6urmJubU80d9ZwnOYXvlfXWvt8Cop+8o98f6x8z6Hr56/LBmuTC0/QePsgjl8shl8up70d9f/w9iainj4h+AmZmZhAKhXD37l3YbDa43W6sra3h/v37SCQS8Pv9qrccMao1Owu98Hi2GXkT+uw9HkyjaDhFxDudTt9utXpx84YZvHNOtVpFqVTC8fExdnd38fbtW2xtbWFvbw/ZbHbkoNogYYvgLwbTkD+s/NX70O12kUwmVdccp9OJaDSKW7duqbN2ut8099vcpebiBT42tuCnCiReEiq54JVKBfV6XUXJ+YAJeg0qHS6Xy2qAJk3L5YMzaaJuLpdDNptVx3CDMFrRy1XS7Xb7fvhE9BNSrVaRz+dRr9dVU0ga0XwRbar0gTLe2LLb7aohkHwuPD8uK5fLaq9NgyPosSR6agJCbnuxWEShUFCjuGgcF03Npc640yw+EqaHiH7KkAXl3WD5lNVpoj/z5mOvqaiEjhJJ+ABUB9tSqaQGaaZSKTUtl1pZc7eenp8WCv14bFpohom8X1zhqjBqbGCQ6GVPPyEmk0m1lKZ/X0Q1nD4QR656pVJBqVRSgzBJ9JTkQ62uqa3X/v4+9vf3cXBwgOPjYyV6fdJLq9Xq6YtPlpyPwx5FQNdJZNfpWq4DZ4pe/linOSsgN2mTyLP+znorT653qVRCPp9HsVhEq9WC2WxWwyRI9I1GQ43dosYSqVQK2Wy2JwsOQE/gjtJiKe990PUNK1W9DPSnFbLNGI5Y+iGM045qEis/6LxZf0xGbne5XEahUEA2m0Umk0GpVFKWnk+l6XQ6qNVqyOfzODo6wuHhIdLpNPL5fE8gjwKB3NLTz4eJ+LoYhetyHZ8KZ4r+OmR6XVcuonsNFzrQa31pj53L5dT+nATcbrdhtVqVa2+xWNRj6P7ZbBaFQkHFAXiuO4CeKjfusVz3aPug63I6nbDb7Wd2CzYqYunPAU94oYAY39cPEwwvNe1346OwS6UScrkcjo+PcXR0pKz8yckJAKj9PLXFptz3fD6PQqGAUqmkxE6WnIuc33iTkGmnuV5GgC8QCKjptw6HQ+VMXNeF67I5U/Rv3ry5rOu4FnCR0jGYy+WC2+1W6bR8zBNvhd1qtdTgRz54gj8v0a9mnH+lG0XRS6USisWicumz2SxKpZIapaV/XZPJpLYDZN3peI2PshpUgnqRhT/TEp7JZDpVtmy1WtWsAKpsFNGf5kzRf/fddxfq4k87eWVaz08W0OFwIBqNYn5+Hl6vt2cmGxcVndfb7Xb4fD74/X54vd6egRR0PZRYQ4sFJbpUKpWeqDkdydH5OAXtSMB6C+90OtFoNJRLS8d1+mM2Hq3ncO+EknQmce8vypLrj908Hg/u37+P+/fv4/bt2wiFQnC5XLDZbKqa0el0qh6DIviPnCn6P/3pT5d1HdcG+nC12204nU7E43HcunULPp9PWW8SVaPRQD6fV5Nu7HY7/H6/GjlFHgI/N+fJNTy7jZJdSPC8gKVUKqlzcpowazKZlOBdLpfyDprNJmZmZnoWF+pOo08L1u919ZFvuv84/f37ictsNqu/G09cIo9Dn1I87HmtVitu376NX//61/jd736HtbU1NfVH9u/DOVP033///WVdx7XBZDKpD6DValXVdGRBefINCZgGK1BmHo2OdjqdakQ0ZbvxXHaez84j57QokDegPz6bmZmBxWKBzWaD0+nsEXWn04HFYunJtyfR8uIabv14cg4l6NBWhh6rn247Kpqmwev1YnZ2Vnk/9Fr1el3lG9Cipj8m5NmFZrMZLpcL8/Pz+Prrr/HNN9/giy++QDwe7ylzFs7mTNEnk8nLuo4bhcn0YcY7WXnqeUdC5PvpQZVx+jHS+vtarVb1XNTNh6wcvR7PzafrMpvNsFqtKlgHYOBYaopb8HZVPMDHsxHpuakPoNPphMfjQSAQQCQSQSQSQTAYVF1+W60WKpWKOn7kNfYUeyDhU3yj2+0iHA7j3r17ePToET7//HNEo1ElePpbXPS28VNHovcXQLfbVQMxpgkJk1fwkffB8+7pPgCUV0BCp2vj+3YAyv3m7rG+gSX/nnsJVqsVTqcTPp8PoVAIc3NzCAaDCAaDCAQCCAQCmJ2dhdvtVseK5NFUKhWUy2Vl7SuVivJ0KLBJDTkqlQoikQju3buHRCJxqrhJgnW9DFr4RPSfEPoPNYnXarX2lMty17jb7aqtABcq37/TnpvuRwuF3vLz7rVUljszMwNN0zA7O4tYLIbl5WUsLy+rcdr6Mdr9FhV+ikFbGgpCUr3+zs4Ojo+P1ZyAcDgMh8OhnusmtRq7aCQ5ZwRG7eYyye8ngYJf1PmVu9/6fAF92jAJlW8vyCWnUwBqB8aTfXiAkx5ntVpVF6FAIIBwOIyFhQXE43EEg0Fl2cd5X/qa/Xq9jnw+j9nZWRwdHcFms6lhnjwoOGkKtBGR3PsRuG5/B56xx3vF8+ukir9Op9Pj8tN2gCw9iZ4E7/F44PV6Vedel8ulLDXf+1NuAD3G5/PB5/PB6/VC0zR1bj4O9LzkeTgcDmiaps7a3W43Op0O3G73Ka9BxD464t5/4uiDayRustB0H73oKcBHoqdOvpRnEAgE4PP54Ha7lYtOeQoUQ6CAHXX4dTqdPYsDMPlQELpenmFoMn3onU+JUsJkiOg/UfoFrfhxHO+Go++4SyKiRYKsKh03ejwezM7OqiQjvi/X7/9pW8BbeU9LkDzISPkIvEOQWPfJENF/4vCjM4L3yyOxU0CP7+X1ngG33rQIUH9+7uJzT4LaevOsQ30S0LjvR/9vWqh4O7CbNsn3MhEfSRAMhlj6T5xB6bQ8z54CfTzzj7v3AHqi5pQSXKvVlBWn4zXu3lut1lPtws57dKaPBei781IsQubVTY6I/hOln7h4phwFviitmOfmk/i73a4qHgKg3HteL9BsNlGv108F8nj0XtM0VatA+QDn3dfzZBvq5kPdfmw220hNPoT+iOg/cfRBOl7AAny08rx8lyruSJz6KjS6f6VSUft5yvjj+2uqaKP6BH5kR4+ZZE+vn15bqVSQyWSQyWTQ6XTUkaIwGZKcMwLXLTlHH6XXFwIBvZ1wyG0nwVMXXx4k4yKjtlzUXZeemxYUgpJzNE1DMBhEJBLB/Pw84vE4QqHQxMk5dJ08OWd3d1cl55hMJgQCgZ4ApiTnjI4k54zAdfs78DN32mPzYywe0SfXmFfu9RM9iY0EzxcRbnn7PZan4S4tLfWk4Xo8nlNpuPp9Ot966NNwa7Uastks3r9/r9JwrVYrQqHQqWIiYTTEvf+E4Gm0PEGGgmrc1QfQY715EQsNuRil4IZEznPk9X30qOBmZ2cHr1+/RjgcRigUwuzsrCq6of4ClF1H/QgqlQqKxaIqvOFNP+hWqVSQTqdRqVQQDodhtVqVZ0FDRM97VHgTkYKbS4QaXNAZ9lmltXR/fWmrvrSWPzcv3aU2WZQgQ4sABfD08+iohz0vreUZbzx4xi07Ne/oV1oLfIgtpFKpntJaTdMQCoVUaS0V4AwrraVr5E08arUaut0ustksrFYrAoEAotEoZmdnYbfbezr/SGnt2Zwp+oWFhcu6jmsFfaCtVqvqw+ZwOHqy2wD0jGk+OTlRPfUoLVXTNCV+Ej1vnEENIyiaTl+5m8tLTKlFFrn0JHin06lu1LSDu/f696W31lQxxwXPrbt+kegH/129XkexWAQAHBwcYHd3F7Ozs+rvqLf0NEWnn+CpqIam+NBEH4fDgVAoBK/Xq5pocOELgzlT9L/61a8u6zquBVzMnU5HtctaXFyEz+dTqackYOqRl81mUavVVLusYDCo6se55eUDK3hrLD4yispJqSEmNcWkn5FrTt4EpadS7jtVxnU6HbV/p+M3fgzW75xbX8DDBT9pXIOaYmQymYETdfsVDBF80Wq1WupvYbVaMTs7C4fDgUajgUgk0jMaXCz+xwVTz5mi/8Mf/nAhF3OdIXGSNYnFYojH4z2NMcl1JtHncjnVlNLn86nWUC6Xq6cajKLfZOVJ4LxHHhc/9cij5ps0xoo3xqR+92TpKT+eSm8pGs/r4+la9MLXH5fxBJ9x/n78+YAPi8l5G4qQiIEP4t/e3sY//vEPVCoVvHjxoqcxJi8SMnJjzI2Njb4/P1P0v//97y/kYq4z3M3l7vqgFth+vx/RaFS5n7S/5gkueux2O9rtNjRN69v6mkey+cRZGgWdzWZRLBbVPpuET69rNpuVhSeLX6vVehagQYk93PpO0o3mosSlf95isYjnz59ja2tLeTm0HYtGo6rvPU0RNmJXnUGil6m150Af2OLNK4DzD7sgr4APu0in02rYBY2bBnqHXczMzKDVaqFaraJQKOD4+BjHx8cqWMaP7fTi5nv+s9zuSem32EybQCCAWCxm+GEXf/7zn2Vq7bThveiG3W/Qz3nPO/7B5K427dmpnztlweVyOdWJl6w9WfpWqwWHwwGTydQziZaaTlLwjlxfcuf5e+J74mkJ5jKERwM6KfhKtQPCByQ5ZwT6iZaLU3+/SYNH/NiuX0kpFbrw3HcabTVogCV1r+GnBWTd+QBLigPQ7+karruFHOQ5UIKPcBqx9CMwKOljUCOLcRgUZebi19fFc6tss9mU6HmxTLf7YVQ1d2/pCI4ey3vi8yAj//ewax/0d7pM+gUPhcFI7v054KLXJ9iMw7DH9OsgQ0k+lOjCLT2vkKOINp06UJecUqmERqPR8x5oEaAcAdoO0Nk5vWY/L+equO6eyHVELP2E8LbQwMdGlNNu48Q9AZ6Uo2kaAKh+9mTpqRoOgDoh4J1wvF4vAoGAEr1+b89r6nk/ej4Ekx437LoJEeX1QkQ/IXRGX6vV1LglEtgowb1xIAHxwRbU891qtarjRT7wAvggNgoCulwuNXEmGo2qyD9tH2ixojP1arWqhmcWCgX1lQZSVKtVtW/m2wRChH59EdFPAOWAv3z5EoeHh3C5XIjFYlhYWFBHZnS/aVl9Lnzas9OeHuj1NHgyEE/Vdbvd8Pv9qFQqSqz0nPQ42suTtaeMQbL2JHYSfrlcVglKlENQLpeHvg9ZFK4OEf0EdDodHB0d4fHjx3j9+jXcbjc+++wzlRATCAR6xDdtd5+PrOJFM/0aRlLyjs1mU22uyTKT8PgsOnqMvpxWX7RDKcSlUgnHx8fY3d3F27dv8e7dOySTSeRyub7TbkXsV4+IfgLa7TaOj4/x/PlzPH78GE6nE+l0Wu15ac4azwXnTBrx59aef6Xf9QsmkutP5bf9juH4Y866Xjrqo6AetbDK5/NIpVJYXV3F+/fvkUwmkU6nkc/nkclkcHR0hGw2O/R9Dfp3v4VCFo/JEdFPQLPZRKFQQDKZxJs3bwCgJ+BVr9extraGubk5lSzTL1NvmNj6oRe+/ufDjv7o+373GfRvgkftu92uGkNNcYLV1VWUSiWVMnxwcIDXr1/jp59+wsuXL3F0dDTSexQuFhH9BFB3GSofBYC9vT10u101b/3w8BBLS0tqphsVw/BOsjzaP04fd1os+HHhKI/p9/046BcWCh7SqQBtCxqNBsrlMtLpNBYXFzE3N4f5+Xns7e0pD4CCoED/XvfjXJNY/fEQ0Q9BH4yjktpqtaoSWYAPZ9yHh4eoVqtIp9N4+fIlVlZWcPv2bZUHTrPheM095cvzVlKjcp3yKGgh4seKtBjE43F8+eWXSKVSeP/+PTY3N7G5uYnd3V3kcrlzvy4g7v44iOjHhJpc6INUZrNZHWFlMhkkk0ns7e1he3sbsVhMdY2hAZGhUAjhcBjhcBiBQABOp/NGNIGgRZIGTmqahkgkgkQigXw+j729Pdy6dQuxWAzb29vIZDKoVCqqgQgv6+XxB14Q1G631cmB5NSPj4h+TCiQpe8kwy1Np9NBLpfDyckJ0uk0PB6Psuoul0s1kUwkErh79y4SiQSCwSDsdvsnP6etX7yCsgWphVYgEEAikUAul0O5XEaj0ehp2EGBQjox4L+jRhqbm5v44Ycf1BYBQE9xjVj+wYjoJ2BQIQqlxBLUBiqVSgH4IAS73a5qvlOpFCqVCprNJlZXVxEOh6Fp2oUc9V01dHRI03Bv3759qhWXvmsPZQfqF4FsNouFhQWYTCY8ffoUhUKhp0xZOBsR/YRMIshut9vT3pnSXHO5HCqVCjY2NhCPxwGcHmLxqaO3/MPgCwBfFKihZjgcxq1bt/DDDz/gn//8J168eCFVdSMiop+AQUIcx8qQW1soFFAoFFTRTKvVQjgcVv31pp3S+6nAe/pzOp0OPB4PIpEIPvvsM6ysrMDtdqPb7WJrawvFYlH9P0hkvz8i+jGhINW4R2wc+iCSq0rBL1oENjY2sLi4qEY39Tvj/5Q5Tzky781vs9lw79491Ot1BINBJJNJHB8fI51OI5PJoFarnWo1LouAiH5s+NTWUa3wsA9aoVDAL7/8ogpayJWlhpzU4PEmCB6Y7sLl8Xjw4MEDrKysqNwASgcelApsdET0Q9B/QHmzivNOZiU6nQ5KpRJ2dnZgMplwcnKCXC6H+/fvY2VlBZFIBG63uyejbtzknE+RUayyzWZDKBl3rgQAAAdJSURBVBRSY65KpRJisRju3LmjXP1pFj7dBET0E0CdZ6cleqJer2NrawuFQgHpdFo1sWw2m4jFYtA0raejLXBzBQ+M/95mZmbg8/lgs9kQi8V6ioqEj4joJ2BYi+vz0Gg0cHBwoI6zisUiUqkUEokElpeX1bHeKIK4iA/8dV9kTCaTynoU+iOiHxHuIlITC2pkcRFkMhn89NNPSKVSePPmDTY2NvDgwQOsr68jEomoPu+UyHNZYhzFVR7UU1C4HojoJ4CGYASDQTgcDtTr9an3aut0Osjn88jn88jlcur7/f19NQY6EAhgdnZWdezhI7SAyxFcv7jCVQpd3PmPDPp/ENFPiNfrxeLiIpaWlrCzs9OTGDLto6Hj42M0m02kUik8efIE4XAY8Xgcy8vLuH37Nubn5xEMBtUoLZoHf1Fn/LyhBg3DoDl/vHPQMCb9G521qIhnMRwR/YT4/X6sra1hb28PlUoFe3t76nfTtjbc6m9tbakiluXlZaysrCjR09BMmmvHYw+8kw9luvGv3GL368LDh2/SyC3KmQc+pCA7nU64XC5VWETXQguBPsNQBHo1iOhHRO++BgIBrK+vI51O4+DgAEdHR+ce0jgqtMgUi0Vsb2+rs3xy8XlfPCrjpWm21PG2Xq8r8fIBF5SHQC22aKHgXXJphLb+cQ6HA36/H7FYDEtLS1heXkYsFlPXx/sJ0G0SbvpR5UUjop8Qj8eD5eVlVUZbKBRwcHCgxHTRhR/NZlPNqOsH79BL0Wxql8X72tP1kpCoMQblItCgDOqLd9bkGJPJBL/fj4WFBaysrGBtbQ23bt1SpcNc+HTsqb/xuAQf7kHlzCaTqef6pn1sagRkgOWEUCLI9vY2njx5gidPnuDNmzeqR1w+n1f31bepOu9edtzHm81m2Gw29XhqdnlRQS+n04lQKIS5uTkVaCShkoWnRp2apqneApFIBMFgEB6PR11vp9NBtVpFJpNBoVCA0+lEJBJBOBxWHoQwkL6ukIh+QqiDTrFYxNHREXZ2drC5uYlnz56pEcqFQkFKPdHbVYdulNno8/kQjUbVdiAejyMQCKjhk5SrkEwmkclkoGkaVldXsb6+jpWVFYRCIXHzByNTa6cJjYjyeDywWq2qSaTP51O3169fI5lMnmlRRz1jP6tIpZ+LyzvPDHsfo7wev9az6v31zUXouajenVOpVNRx5PHxMXZ2dlRbMbL03W4X1WpVNdywWCx4+/YtSqUS3G43QqFQz+vIAjAcEf2EkOi55XI4HKo7bCAQUC2wk8nkQIs/6fm+vlPPpIzz2oPEe14KhQLK5TJ2d3dVFSNv500nB/T6Ozs7cLlc+Oqrr6RH3gSI6M8BWT06kqKWUHRs5fP5EIvF1B6fpsEUi0WUy+VLqwA7y/pdB7HwibqjkMvlUK1WVY6AWPfxENGfA26N+GgoytiLRqO4f/++qvHe39/Hzs4O3r9/j729PRwdHfX0eLsoroOwp8ny8jLm5+fVEE9AauXHQUQ/BXiyCVl9imAvLS2pvWsqlcLe3h52d3exv7+PTCaDYrGIWq2mjqTIjdW3i6LsN/610+n0/PsyPvS0yPHZeZT8Q628+7XzphgD72PHn0efREQuPp8LSCPDVlZW8PDhQwSDwb7/D8LZSPT+giHXtdFoqAk4NBCSj36m8+9Go6FSXPVjo+lWrVbVjT8XPZ5n2407OIJER0k6fBgH/Y6Sd6joiPr5a5qmvqfOvmSB+Rw8WtjMZrPqEEztsvlZPW9WYjJ9GNZJ3YSj0SgikYjqLiT0RY7sriMUpCLxU/08CYTmxZVKJXWjibGDFhEuemB4foC+aSW3tvx7+kpipHN2Eqzb7VbfO51OlWRDU2/oPZFXQnEQ/liHwwGr1dozdpuLXz+dV6z7mYjoPwX0efG8FTQtCCQcLiKyoLyVNNAr9LNET1/1Nz4sUx+/IIvPM+Toxl183smW5/rz83qa9GO1Wnvce8m4Oxci+uvCJI0h+/Xav06BK30RTb/3NIqnIUwVEf1VMyxJRxCmjGTkXTUibOE6IKK/ZpzHZb9od/8qFi1ZKKePuPeCcHPpu2JKaFQQDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhoheEAyGiF4QDIaIXhAMhmXI702XchWCIFwaYukFwWCI6AXBYIjoBcFgiOgFwWCI6AXBYIjoBcFg/H8Ut+1F8S8+qAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 58\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 59\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dSVNbadbn/wJNVyMakBBgIxso23ggM+3MrFxUVUT1pqK3vakv0NG7d9Nforf9FXrZu15WRWVtuiKqKu0KV9pOG4+YQSAQSEhXMxreheM8PrpcjYjB3POLuAEWGh7J+j/DGW3tdhuCIFiHiYsegCAI54uIXhAshoheECyGiF4QLIaIXhAshr3P38W0LwhfLjazG2WlFwSLIaIXBIshohcEiyGiFwSLIaIXBIshohcEiyGiFwSLIaIXBIshohcEiyGiFwSLIaIXBIshohcEiyGiFwSLIaIXBIshohcEiyGiFwSLIaIXBIshohcEiyGiFwSLIaIXhDHy//6dwn/93/8f//3/PEG2VL/o4ZjSrzCmIAgDktFr+J//92c0Wm283C0g4l3D//pvDy56WCeQlV4QxkT1uIlG63MBab3auMDRdEdELwhj4lrYg//xu5uw2YCZgBv/8V+WL3pIptj6dK2VuveCMCT1RgtO+6VYT03r3ovoBeHqIs0uBEEQ0QuC5RDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxRDRC4LFENELgsWwX/QAhE76NBQ9s8cOgs1m2g/xyr3mVUe61grC1cV0xpSV/hzpNcHKiiacFyL6c4QLm08Agwi+3W53XMa/XRR87PS7zWYzfU80TuN773Z/4WwQ0V8Q3b7krVYLzWZT/Ww0GqjX66jX66hWq+r34+PjEz8bjYZ67DAThFGsdE1MTJj+e2JiAhMTE7Db7XA4HHA6nScuu92OyclJ9ZrNZlO9Hxoffw6Xy9XxOHoNmRDGj4j+gmm1Wkq41WoVtVpNifj4+BjVahXlchmFQgHFYhG6rqNUKqFcLqNYLKJUKkHXdZTLZTUpNBoNNBoN9fyA+SpLcFEDUMKjiwRIv9vtdjidTrjdbmiaBp/P13F5vV5omga73Q6bzYZWq6UmK3pvJHq32w2v1wu/3w+v1wu3263ET+Og383GJRPC8Ijoz5h2u41Go6HES8Itl8uoVCqoVCpK8MaVnCaDcrmMUqmEYrGohF6pVFAul9VzVioVNWm0Wi00Gg3Tlb4XNpvthMi5uPi/XS4XXC4XNE2D1+uFx+OB1+uFz+eDx+OBy+WC3W5Xn4FxR0Kid7lc6rEejweapsHhcHQI3W63q8nG6/UiFAohHo8jHo8jEAic1X/dlUVEPyb4StpqtZTw6vU6SqUSstks0uk0tra2sLW1hd3dXWQyGei6jkqlokRBW2H6ybf5xqvZbOL4+Fj9/bRne5qgekG7Ar7ikigdDgcmJyfhcDg6VmEaF30uzWYTADomFofDoR5vnGRsNhuazSYmJycRiUSwtLSER48e4YcffoDf75fVfkhE9GOAn58bjQYqlQoKhQKy2SwymQwymQwODg6ws7ODjY0NbGxsIJVKIZPJoFKpXPTwh4LeJx1LLoLbt29jYmICy8vLuHnzZsfYZALoj4j+FHAB0ApWLpeRyWTw8eNH/PLLL3j58iVSqRTy+TyKxSIKhYI6n/dbVcdFLyFcpOV/VD5+/IhUKoVyuaxu+xLfx0Uhoj8FfMWr1WooFovY39/Hhw8f8Pz5czx+/BjPnz/Hzs6OMqhd1DgvM0Z7Af2kv5HlnybZSCQCj8ejDIXCcIjoR4S28mRhz+Vy2N7exuvXr/HixQu8ePECb9++xc7OTt+gnEH99GaPBaAEwuFuu150e+1BrPxmjyU7xDAEg0FEo1FEo1GEQiH4/X44nU5MTEyg1WqhXC4jl8uhWCzCbrfj+vXr+PrrrxGJRNSW3mazXfrJ7bIgoh8REn2hUFDb+bW1NSX49fV1FAqFvl/EYS3sxscCONUuYpjX5seZQTHz+XO3XyAQwMzMDJLJJJLJJGZnZxEKheDxeNQqr+s6UqkUDg8P4fV6sbS0hDt37mB6evrEawn9EdGPSKvVQq1WQzqdxtOnT/H06VO8ffsWm5ub2N3dxdHRkbovrYy9fOWDYLSGD8rExAScTicmJyeV/YE8BWeBpmmYnp5GLBbD1NQUvF6v8r2Thd7lcsHtdsPn8yEcDiMejyMWiyESiaiVnnz85XIZh4eHKBQKcLvdiMViiMViYrkfERH9CJDfOZ/P4/379/j73/+Ov/3tb0in08rXzhnXeX4YkdrtdiUqj8ejzsAAUKvVlF+/Wq0qtx89zm63qwi5yclJtNttFUtQqVRQq9VMxzIxMYFwOIy5uTksLy9jeXkZCwsLauWm5+QX+fvpIh89nyibzSZmZ2eV4ZNHAQrDI6IfEV3Xsb6+rrbzHz58OCH2s8TpdCIYDCIYDKooOIqSo58kdo/HA7fbDbvdriasWq2mJiiKkAM+7SbIZ07+dhIeTRIUBEQhtcAnwWuahqmpKSQSCSwsLGBhYQEzMzMIBoMdYbZ8xR8FPlZheET0A8J9wO12G4eHh/jll1/w888/Y3t7+1wF7/P51Dn45s2bmJ+fRyQSUVtpErnb7e6IbqPxG+P7uV2BB99wIyMFG9GEQRftECYnJ1V0Hg/JpTHwoJvTilXEfjpE9COSy+Xw5s0bvHr1CplMpuNv47YkT0xMIBAIIBwOIxaLIR6PY3Z2tsP4FYlEEAgElOBpa34WUCQghdQCUKv3MCv4aW0bwmiI6EdE13UVXVer1Tr+Nm4D2fT0NJaWlvDgwQOsrKxgbm4O4XAYoVBIbe95ospZi4J86m63+1Rb7bMYp7jtPtPt8xXRj0Cz2VTx9NVqFcDnbfG4jHa0us/MzGBxcREPHjzAw4cPsbKygng8rhJTKDnGjLMSgFkOfbfXPe9VWXYB/RHRDwj/MnFD2FkRjUaxsrKiVneyhMdiMXi93q5CP2sGEZUI73Ijoh8Bynk/i9h5t9uNSCSCO3fu4Ne//jUePXqE5eVlxONxeL3ejnRVoLfArCi+drut0o7HkXn4JZNIJExvF9GPAFmuxx1P73a7kUwm8dVXX+Hhw4e4d+8eFhcXEYvF4PP5OirRkLHwKmeWDSJY/t6bzSYKhQJSqRRSqRQKhYLyLvD7WmUi+OMf/2h6u4i+D0ZRNZtNVehinOd3r9eLubk5fPvtt/jtb3+L1dVVJBIJBAIBuN1uJXLu8rqqYicGeX/1eh35fB5HR0coFovIZDJ4//49Pnz4gGw22yF6qyGiHxPkr6YiFoNg/PIaV5pgMIjl5WV88803+O677/DgwQNcv34dfr9fRaddJYEb3/9p3puu6/jXv/6Ff//739je3sbh4SH29vaQy+VQrVZVHILZ6wwyDrOdlPH5uu22LsPzmyGiHxJe0WbQbWK3+zkcDgSDQdy8eRM//PADfvOb36hEEjq/U5DMVWLU90PHGfr8S6USnj9/jh9//BF/+ctfTiQ5SeadOSL6EeiWGUepoIPg8/kQi8WwuLiI1dVVfPvtt7h79y5mZ2fhcrk6csqtCC9MQiKnXVaxWEQqlcLLly/x+PFj/PTTT1hbWzvhTRHBmyOiH5FRvlCU7eb3+5FIJLC0tISHDx/iq6++wuLiIqanp1XSyVUr/WysMkTHI35xoVPIL6/uS7dls1k8ffoUf/3rX/Hs2bOBUpiFz4joR6BbgwajC8/n88Hv98Pv96ssM4/Hg6mpKczNzWFpaUn54CORSEdE3VUSPPDpM6vX6ygUCtjb28P+/j6y2SyKxSJqtRqOj487VnYucj4xNBoN5PN5vHnzBk+ePOlY3SlQaZijlxUR0Q+JsbQTv52+aHa7HYFAAPPz81hYWEAikUA4HIbf74fP50MwGEQkElF54aFQSJWMviqC5ys7FQvN5/PY2trCy5cv8csvv+Djx4/IZDIol8vKG0L3Bz5v8XnhDjrTU2owh+4v9EZEPySTk5OmudytVgtutxt+vx8zMzNYWFjAzZs3kUwmkUgkEAqF4PV6O2rEa5qmtvPGrLYvHRJ6LpfD3t4e0uk00uk0Njc38fr1a7x+/RpbW1sdxUZGgVJ/ZWUfHBF9H4wipK4slDJK2O12xONxZZi7d+8erl+/rlZ4ipU3NnIYtX3TRca3m8Et6/V6HbquI5PJ4N27d3j27BlevXqlXGq5XA6FQmEs5b9F8MMjoh8BqkgTDAbVbfPz87h//z6++eYbPHr0CLdv38b09LQq8Gg8CtDPURo4Gr/o3I87SKHLfv7dfs/BBd5sNlGr1VSnnUKhgKOjI2SzWezu7uLt27d49uwZ1tbWTqQgj/r6xrEIwyGiHwGqWjM/P4/l5WVomoaVlRVliV9aWsL09LQq7mjkNMEp/KxsXO3NJhBj5x2zwpb9ovx4Mw9uXSexHx0dqa375uamauSRy+WQy+Wwv7+PXC431HuksYiox4+IfgQmJycRjUZx9+5d5YK7desW7t+/j+XlZYRCIVVbjuiXjjoIRuGR4YpXmTVG7/H7U+ELsohzcfEjhlHcvGAGr5xTLpfVNn5zcxPr6+tYX1/H9vY2stnswEa1bsIWwZ8Ntj4frHzqJrTbbaRSKbVldbvdSCQSmJ+fV752ut84z9vcGs7FC3wubMG9Cvz+JNJSqYRSqYRqtaqy0HjPONq2U+pwsVjseBw1zeT/LhQKyOVyODw8RDabRalU6voerJb0cpG0223TL5+IfkRoW1utVlVRSLLIn0WZKqOhjERJRS15S2cSMHXfIfEeHR0pQ1qxWFRuMl6/jspjk5jz+bz6qeu66pzLu+SOM/lIGB8i+jFDguLVYPmKOU6MPm9qe00tq0m4TqdTeQcAqAq2uq6rRBQKjNF1XaUH8zM9TRKVSkUJnLfHpgq6/URuZle4KKxqG+gmejnTj4jNZlMlpenfZ5ENZzTE8a06rbzUxpniB0j0xjbZqVQKOzs7ODg4gK7rqFarHUY6bqAzruS8HfYgArpMIrtMY7kM9BS9fFgn6WWQG7VIZK/P2bjKkyB1XcfR0RF0Xcfx8bHqGkOib7fbqFarqu3Wzs4Otre3kU6n1fae4t+56MlQx+Peu42vX6rqeWD0Vsgxoz+y0vdhmHJUo6zyZv5moz+cC75UKik/eDabha7raDQaHaKfnJxUoar5fB77+/tIp9M4ODhQEwUZ8nijSx7zzq37/cZ+0VyWcXwp9BT9ZYj0uqycRfUavtU2CpHO2EdHR8hkMjg4OEAul+s405PoJyYm0Gw2VbfXTCaDbDarqstw45sxR537//kqelmF1W1cFOLcq1qwVZGV/hTwgBdyz/FzfT/B8FRTs4u3wtZ1HblcDgcHB0rEuq6jXq9jYmICDodDid5ms6HRaCgPw9HRkQp7pa27UeRmMQD89nFxHga+cDisut+63W4VM3FZJ67zpqfo3717d17juBRwkZIbzOPxwOfzqRWUt3nipbDJmEbdWLlBzbgbMMsZp55ydJFbjsJbSbzkcqOzPADVcJJe12az4fj4GJVKBYVCAbquK8FT6KxxwjovxvVaNpsNfr9ftdGixCXqFUCZjSL6k/QU/Y8//nimW/xxB6+M6/lpBaSgm9nZWQQCAeUOo5WUDGVUj83lciEYDCIUCiEQCHQ0pKDxcGMZlWqmi1xl5JIj63w+n1f+cnKdHR8fqz7vbrcbmqahVqupyYnGR4E4PHWVxmIMd6WdirHqLv0+CGe1khvdbn6/H/fv38e9e/dw48YNFfbsdDpVNqOmaSqpSQT/mZ6i/9Of/nRe47g08Kg0TdMwOzuLa9euIRgMqtWbCjVUq1Xk83lks1lUKhW4XC6EQiHVcop2CNxvTsE1JHCj6PnPYrEIXdeh63qHeNvttqrCQ4U5arUavF6vmpjI8EcBPMZcc6PVm943TVCtVqujY+2gmImLJic+odDnwRN3+nkxCLvdjmQyie+//x6/+93vcOfOHcTj8a65DkInPUX/008/ndc4Lg02m019AR0Oh8qmI6MQD74hAVNjBervRq2jNU1TLaIp2o2H0PKYdmNJKBIsGd3ofjz6zuVyQdO0Diu82+1WYuVuNxI8tzeQAHnMPYmQdjP0N2N320Hxer0IBAKYmppSux/6LMgbQZNauVzueJ8A1Bjp+OTxeDA7O4uHDx/i+++/x+rqKmZnZzvSnIXe9BR9KpU6r3FcKWy2Tz3eaZWnL2S73VZfaBIpiZBbmLlBjRvTeBadw+E40R+enot2Flw8PCGHdgJ8vPzx9LrcfcfHTa9pfG16fqfTCU3T4Pf7EQ6HMTMzg3g8jnA4rKr8NhoNlEoltVPiOfYUKUjPT96LdruN6elplcJ8584dzMzMdHy+/KgimCPW+zOg3W4r49w4IcHzDD7afdC2niYPfgY2Cp4exycSeh6j/YFn6NFOxejWczgc0DQNwWAQ0WgU09PTiEQiiEQiCIfDCIfDmJqaUgY3Ej1FDNIxhpJ7KIuPPsNSqYT9/X0Ui0XEYjHcvXsXt27dQiwW60huEmNdJ90mPhH9F4TxS03GPIfDobbFJFQ6htBRwOFwdEwUtNLTZEArNE0gfOXnAULcnUfP7/V6EQqFkEgkkEwmkUwmVTttYxttvqPhjUPoKEJHmkqlomwe2WwWGxsbyGQymJqaws2bNzsED5y0UQjdkeCcAej1OVxE1BqtwmRQ5JF0Rqu83W4/UXCD7A9kH6AdANkIqBwYT+AxWvFphae6gOFwGLFYDPPz85idnUUkElEr+zDvy2jTqFaryOVymJqawt7eHlwu14lmnsZxCb2R2PsBuGyfA42Hl4wmCztfgWlS4HYDWuVppaeJwel0qoKdVLWX/OBut7ujAQcPBvJ4PAgEAggGgwgGgwgEAvB6vcpvPgw0Fu6KbDQaytfu8/nQarVUu69xFCaxIrK9/4IxBtgYfe083RfAiS0/YRRwKBRCKBRSFnfjFp0er2maqiNA3go6IpwmfJeOFnTU4J6Eer1+IlBKGA4R/RcKT8oxq3nHjXbNZrOjZDfF5tN9KZKQBEwuNm6AI0FToQ6q7MsjAUnw44p1J1HTMcLj8aj3dRV7/J0XIvorBheCse4dpdwaV1++epN4NU2Dx+PpuLjoufjp8cBJY+Np04y58ZFeT5JoTod8csJAGFN/B9m2y0p8OZGV/orBxUjbfnKzGZtGAlDJOZOTk8p3Xq/XlbuMVlayrPNV3ul0KkMhj1Y8jdjNvAT0XsiyTx4JYTRE9F8oPDrPuNU1xstTsUsSNYmfID9/pVLpOJsDUIk73EhHoqdzNhnygE89AXgM/6hw4ySlF1PPO6fTOVCRD8EcEf0XDj+385r1PFSWSlobY/2Bz7kGPDafIgopH99olSfR93LZUduvUc70PPag2WyiWCwim83i4OAArVYLgUAAgUBARD8iEpwzAJctOMcYOsvdcjxLkFZDXvOOr/QUnMNj7GmC0HUd2WxWNdc0Noqk4ByXywW/349IJIJ4PI65uTnMzs4iGo2OFJzD6wnw4JzNzU3s7+8rd10kEjlhZ6BxCb2R4JwBuGyfAw++IeHT6mssccW39VSYg1ZR4HPADu0AarVaRw0Agh7DE4HotTVNQzgcRiKRwMLCApLJJObn57uG4fIdCe+8Q7YE2mXQlp7CcA8ODlSKczQaPZE0JAyGbO+/IHjCDQWuUKgsd53xpBljaCuJm8fP08VTac0SboxlsEn4drsdHo8HGxsbePv2LWKxGKLRKKamplTSDdUXoOg62lGUSiUUCgVVW98s4aZYLCKTyaBUKqkOQtFoFPF4XH02p3UVXkUk4eYcsdlsHWI0ptYay1Rx4QGfK/eY5bDz1FoKjKEwWbooKMcYwMMTXMxSa+m2bqm1xgaY3IJOTSzNUmvj8bhKrfX5fB2ptUdHR6rRZaFQUDn1dNSgcZXLZbTbbeRyOTidToRCIczMzCAUCsHlcnXUCZDU2t70FP38/Px5jeNSQV9sh8MBv98Pv9+vilPwlZRWKypfRUUevF6v+knip8IRvBEkbb2NhTTIWs0r39B9gc+BKhRFR8EzlCzDy0NReq9R+Mb0WB67T383uvh6ucn436iM2N7eHjRNw9bWFqamptTnaFzpeassXmufF/qgIhpUj1DTNExPTyMQCGBubq7DaCiC701P0X/33XfnNY5LARdzq9VS5bKuX79+olwWtYyiIhBUI4+2tBS+So/hlXPo7Eo17MrlsvKL0zmWSl7ruq5q41G5LODzboLq41HsOy+XRVt2qpgLdK7+xjJYtKvgLbsGKWXVCyqKcXh42LWjLt/VGMfDdySNRgO6ruPdu3dwOByq2m29Xj9RLktW/M9Vh4z0FP0f/vCHMxnMZYbE2Ww2TQtjktuKi54aWVJhTEpU8Xg8HTnkJDSeOsq7wPJ2UrxGHr0GlZWqVCpKDLTNp1We172nIJZarXaijbXx2GDM3DO6/ob5/Mye87QFRXhRkEajgY2NDfzjH/9AqVTCq1evEI1GVaiwz+dT9gMrF8ZcXV01vb2n6H//+9+fyWAuM7xWHN+udyuBHQqF1JaTtty8vZQZvLYdbd2N231eAtvY1YbaUtVqNQBQgTK87j0dN0j0tOLyyjr8vQKdPvJR696flbiMz1soFPDixQusr6+row0dx2ZmZlTde+oibMWqOt1EL11rT4ExtdVYa65feilfTc0uXjm3WCx2NLs4PDxUwqf8dgqIIRccBdccHh4ik8koYxlZ8c2aXXCjXbdt92kw2wmMG3IfWr3ZxZ///GfpWjtuuKGp3/263c5r3hlXVhIdhbkar6OjI5TLZbRarY4MOdrea5qmfufVdUnQNElx99xp69734zyEl81mUS6XlVGTiokIn5DgnAEwEy3fEhvvN6rxyBhYY4y6M6a1ulwuFItFlYTC4+ZbrRYqlYpyFxq70BrdhzQ58Aq7o2zvzxvjZ01jpWg+4SSy0g9At6APM0EMK/huVmYufqMRjq/UTqdT1bzj/enb7U+tqmm1M7PEd2tVTa/br8lFN8GdN+dxZLhKSOz9KegVYDMM/R5Df6fVnIyA7XZb1b83ih74tLqTEZKXz3K5XNB1XW316b1QnAAdBcj4V6/XT0Tj0WMumsu+E7mMyEo/Ijx4BUBH4ss4J0u+E+BBObwLDwWu8Oq1wKd4A4/Hoyz7Ho9HJceQQY92DDRmaizB4wQogIYmAT5Z9Bo3IaK8XIjoR4R89JVKBRMTE8q1Ry6iccKr2VLMvdvtBvA5f52f+WniabVayp1Fgg+FQqrrLe+Lxx9DCS+FQgGFQuFEA02aAOjcbAzrBUTolxkR/Qi0221ks1msra1hb28PHo8HiUQC8/PzKoCH7jeuVZ8Ln87svMAlN/jxDLlms6niAnw+H6amplTkH23XeXgxneVpi18qldRFHWgoepBuz+fzyOVyKo6gWCz2fR8yKVwcIvoRaLVa2N/fx5MnT/DmzRv4fD7cunVLWdHD4XCH+Ma93eclrfn23GjwA6CKSfIkGEpo4b3ozDrakOGP5wvwXHdqp53JZLC1tYX3799jfX0dqVQKh4eHpkcAEfvFI6IfgWaziYODAzx//hyPHz+GpmnIZDLqzLu8vKz6pfdy9xGDTgp8tec/6W9mxkS+9adjQbfMvW5j4XEDdJH4KQAonU5jeXkZm5ubSKVSyGQyKjBob28PuVyu7/vq9m+ziUImj9ER0Y9AvV5HPp9HKpXCu3fvAKDD4FWtVnH79m1MT0+rYBmzSL1+YjPDKHzj7f1cf/S72X26/ZvgVnvaDQQCAdWZdmlpCbquK7Gn02m8efMGz549w9raGvb39wd6j8LZIqIfAQqLLRQK6rbt7W20223Vb31vbw8LCwuqp5tZswhu7R+mYwuPm6d/D/IYs9+HwTixkFFR0zRVs45i/anwxbVr1xCLxTA7O9uxAyAjKNC91v2gY5JVfzhE9H0wGuNarZY6z1IgC/DJ1bW3t4dyuYxMJoO1tTUsLi7ixo0bKg7c5/Op3HfKuaeeb7yU1KBcpjgKblfguf6U7/7VV18hnU5jc3MTr1+/xuvXr7G1tdVz2z/o6wKy3R8GEf2QUBKM0UU1MTGhXFiHh4dIpVLY3t7Gx48fkUgkVNUYv9+PYDCISCSCWCyGWCyGcDgMTdOuRBEIXvzC5/PB6/UiHo9jeXkZR0dH2N7exrVr15BIJFTdu1Kp1FEtxyzLjx8pms2mSj2WmPrhEdEPCbm0jJVk+ErTarWQy+VwfHyMTCYDv9+vVnWPx4OpqSkkEgksLy/j7t27WF5eRiQSUZ1hv+Q+bWb2CmOvvHA4jOXl5Y4UYWOVHl5FiP+t0WigUCjg9evXePLkiToiAJ+9EMbW3EInIvoR6JaIQhVrCCoDlU6nAXwSApWMnpmZQTqdRqlUQr1ex9LSEmKxGLxe75m4+i4aih4Mh8MIBoO4ceOGEjPP4ec176nYiHESyGazmJ+fh81mw7Nnz5DP50cu+mFFRPQjMoogKQmG4topzDWXy6FUKmF1dRWzs7MAoPz8o8bzXzaMK38/+ATAJwQqqBmLxXDt2jU8efIE//znP/Hy5UvJqhsQEf0IdBPiMKsMbWspxJWSZhqNBmKxmKqvN+6Q3i8F2qobqw+1Wi34/X7E43HcunULi4uL8Pl8aLfbWF9fR6FQONGtR+hERD8kZKQa1sXGoS8ibVXJ+EWTwOrqKq5fvw6/3w8Apj7+L5nTpCPzNtVOpxP37t1DtVpFJBJBKpXqqCxUqVROVP2VSUBEPzS0+vCe7P3o90XL5/N49eoV8vk8SqWS2spSQU4q8HgVBA+Md+Ly+/14+PAhFhcXVWzA+/fv8eHDB+RyuRNeFkFE3xfjF5TnrZ+2MyvRarWg6zo2NjZUUctcLof79+9jcXER8XgcPp+vI6Ju2OCcL5FBVmVqcRWNRtFsNqHrOhKJBG7evKm2+uNMfLoKiOhHgCrejkv0RFTxJhQAAAc7SURBVLVaxfr6OvL5PDKZjMp5r9frSCQS8Hq9HSW1gasreGD49zY5Oan6EyQSCZVFKHQioh+BfiWuT0OtVsPu7q5yZxUKBezu7uJXv/oVksmkcusNIoiz+MJf9knGZrOpqEfBHBH9gPAtImWrUSGLs+Dw8BA///wz0uk03r17h9XVVTx8+BArKyuIx+OqzjsF8pyXGAfZKnerKShcDkT0I0BNMCKRCNxuN6rV6thrtbVaLRwdHakGj/T7zs4O5ubmVCdYap/FE3rO09JvZle4SKHLdv4z3f4fRPQjEggEcP36dSwsLGBjY6MjMGTcrqGDgwPU63Wk02k8ffpUZa0lk0ncuHFDTQLBYFDVxDtLHz8vqEG1+qhoJ68c1I9RP6Nek4rsLPojoh+RUCiE27dvY3t7G6VSCdvb2+pv415t+Kq/vr6ukliSySQWFxcxNzfX0TRT0zRomtZhe+CVfHjYK09uAT63rTYru03NMKnlFsXMA5+PPB6PRyUW0VhoIjBGGIpALwYR/YAYt6/hcBgrKyvIZDLY3d3F/v7+qZs0DgpNMoVCAR8/flS+fNriU996Kojp9XpV3/p2u61aYZN4eYMLikOgEls0UVAcPBXENHuc2+1GKBRCIpHAwsICkskkEomEGh+vJ0DXKFx1V+VZI6IfEb/fj2QyqdJo8/k8dnd3lZjOOvGjXq/j4OAABwcHpn/nFXrJmu1wONButzvq2tN4SUhUGIN3y2m326ouXq/OMTabDaFQCPPz81hcXMTt27dx7do1lTrMhU+/k/vT2PiTFwrh6cw2m61jfON2m1oBaWA5IhQI8vHjRzx9+hRPnz7Fu3fvVI24o6MjdV+z3vCjMGrBiImJCdXNlsZ+fHx8ZkYvTdMQjUYxPT2NqakpeL1eJVRa4Z1OJ9xuN7xeL6LRKGKxGOLxOCKRCPx+vxpvq9VCuVzG4eEh8vk8NE1DPB5HLBZTOwihK6ZbIRH9iFAFnUKhgP39fWxsbGBtbQ0vXrxQLZTz+bykeqKzqg5dFNkYDAYxMzOjjgOzs7MIh8OqHRdNrlRh1+PxYGlpCSsrK1hcXEQ0GpVtfneka+04sdlssNvt8Pv9cDgc8Hq9CAQCCAaD6nr79i1SqVTPFXVQH3uvJBWzLS6vPNPvfQzyenysvfL9jcVF6Lko351TKpWUO/Lg4AAbGxuqrBit9O12G+VyWRXcsNvteP/+PXRdh8/nQzQa7XgdmQD6I6IfERI9X7ncbjcCgQAikQjC4bAqgZ1Kpbqu+KP6942VekZlmNfuJt7Tks/nUSwWsbW1pbIYeTlv8hzQ629sbMDj8eDrr7+WGnkjIKI/BbTqkUuKrObktgoGg0gkEuqMXywWVXuoYrF4bhlgvVa/yyAW3jxzEHK5HMrlsooRkNV9OET0p4CvRrw1lN1uh8fjwczMDO7fv69yvHd2drCxsYHNzU1sb29jf3+/o8bbWXEZhD1Okskk5ubm4PV61W2SKz84IvoxwINNaNUnC/bCwoI6u6bTaWxvb2Nraws7Ozs4PDxEoVBApVJRLinaxhrLRVH0G/9JnWbO2hpvfK+0BaeLgn+olLdZOW+yMfA6dvx5jEFEtMXnfQGpZdji4iIePXqESCRi+v8g9Eas92cMbV1rtZrqgEONH3nrZ/J/12o1FeLKA2KoyCY1kaSLPxc9nkfbDds4gkRHOxbejIPvZHjSEdXz93q96neq7EsrMO+DxxtnUoVgKpfNffXGLrxOp1NVE56ZmUE8HlfVhQRTxGV3GSEjFYmf8udJILVaTTWKpKtUKinBm00iXPRA//gAY9FKvtry3+kniZH87CRYn8+nftc0TQXZUNcbek+0KyE7CH+s2+2Gw+FQuwZjC25+DdscxIKI6L8EjHHxvBQ0TQgkHC4iWkF5k0mgU+i9RE8/jRdvlmm0X9CKzyPk6OJbfF7Jlsf6c389dfpxOBwd23uJuDsVIvrLwiiFIc1q7V8mw5UxicbsPQ2y0xDGioj+oukXpCMIY0Yi8i4aEbZwGRDRXzJOs2U/6+3+RUxaMlGOH9neC8LVxXTGFNOoIFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAwRvSBYDBG9IFgMEb0gWAx7n7/bzmUUgiCcG7LSC4LFENELgsUQ0QuCxRDRC4LFENELgsUQ0QuCxfhPJDPr9aJp9OQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 60\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 61\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAADnCAYAAADVeFABAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO2dSW8b+fnnv9yL+yqR2mXJkttuy23YTiONBBkkcwn+17nkDQzmNpdB3sNc5y3McW5zDIIkhwEaSKeNdsfdsrstybIWUuJOFvd1Do3n51+ViquoxarnAxCSuFQVKX5/y7Na+v0+GIYxD9abvgCGYa4XFj3DmAwWPcOYDBY9w5gMFj3DmAz7iMfZtM8wny4Wozt5pmcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZ5gZ8n9fneI//tf/w3/9398iX23d9OUYMqowJsMwY5JRm/gf/+d7dHp97KbKiHrf4n/+lyc3fVkX4JmeYWZEo91Fp/exgLTa6Nzg1QyGRc8wM2Il4sF/+08bsFiAREDBf//PWzd9SYZYRnSt5br3DDMhrU4PTvutmE8N696z6Bnm7sLNLhiGYdEzjOlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJYNEzjMlg0TOMyWDRM4zJsN/0BTBaRjQUvbLXjoPFYtgP8c6d867DXWsZ5u5iOGLyTH+NDBtgeUZjrgsW/TVCwtaLfxzB9/t9zU3/2E0hXzv9brFYDN8TXad8vfRcHvSuDxb9DTDsC97r9dDtdsXPTqeDVquFVquFZrOJZrOJVquFdruNdrstHmu32+h0OuK1kwwQerHSzWq1XhClzWaD1WqF1WqF3W6Hw+GA0+m8cLPb7bDZbOKc3W5XvB+6PvkYLpdL8zo6Bw8Is4dFf8PIwm40GhdE3Wg0UKvVUC6XUalUoKoqqtUqarUaKpUKqtUqKpUKarUa6vU6Wq0WOp0OOp0OgF8GEcB4liX0Yrfb7Rph22w2WCwW2Gw22Gw22O12OJ1OKIoCt9sNn8+nuXm9XrjdbtjtdlgsFvR6PTE40Xsj0SuKAq/XC7/fD6/XC0VRhPjp3PQ7/U03GhSYyWDRXzG9Xg/tdhvNZlMIlMTabDaFUBuNBhqNhkYYNJPXarULr6XBgO6v1+vi9TSQGM30o7BarReEpRe91WqFy+WCy+WC2+2G1+uFx+OB1+uFz+eDx+OBy+WC3f7L16vf74v3Iq9I7HY7XC6XeK3H44Hb7YbD4dAInQYhu90Or9eLcDiMeDyOeDyOQCBwFf+2Ow2Lfkbo99wkvGaziUqlgnw+j1QqhZOTE5ycnCCVSiGbzQrBkijotfRTXubrb91uF+12WyPyy9Lr9cRAZQStBuSBgUTpcDhgs9ngcDg0szBdFx272+0C0A4wDodDvJ5eS49ZLBZ0u13YbDbEYjFsbm7ixYsX+Oqrr+D3+3m2nxAW/SWRl829Xg+dTgfVahWlUgm5XA7ZbBaZTAbZbBanp6c4Pj7G0dERkskkMpkMGo3GDb+DyaBBbdjAcNV89tlnsFqt2N7exsbGhubaeAAYDYv+EsgCIENVpVJBKpXC/v4+dnd38fPPPyOVSqFcLkNVVaiqKvbntN++aoYJ4SYt/9Py4cMHJJNJVKtVcd+n+D5uChb9JaAleLvdRr1eh6qqODs7w88//4xXr17hu+++w+7uLtLp9I1f522GjIey7UDeHtAKit5HLBaDx+MRhkJmMlj0U9Lv94XVvVarIZfL4cOHD3jz5g1ev36N3d1dHBwcIJPJDD3OuC6pYa42q/ViCoXsthvFMJ+60bXS+YxeR3aISQgGg5ifn8fc3BzC4TB8Ph+cTiesVit6vR4ajQYKhQJUVYXT6cTKygqePXuGWCwmlvQWi+XWD263BRb9lNCetlQq4ezsDAcHB/jxxx/x+vVrvHnzBqenp1BVdeRxprGwy6+la7kM455f3s6Mi97nTz/JN+/3+7G4uIj19XWsr69jcXERkUgEiqII0auqimQyiXw+D6/Xi42NDTx48ABzc3MXzsWMhkU/Jf1+H81mE6lUCi9fvsTLly/x7t07nJyc4OzsDJVKRTyXZsZhvvJxGBTRNwqr1Qqn0wmbzSYs6OQpuAq8Xi/m5uYwNzeHUCgEj8cjfO9koXe5XFAUBX6/H5FIBIlEAvPz84hGo/D7/XA6ncLHX6/Xkc/noaoqXC6XODZb7qeDRT8F/X4frVYLxWIR+/v7+Prrr/H111/j/Pxc+KJlZmWwm0SkVqsVHo9H+M29Xq+IkGu32yKYp9FoCLcfAOE+o8g6m80m3i/FEjSbTcNrsVqtiEajWFpawvb2Nra3t7G6uopQKAS32y0Cb+QIPPL30990TnnL0u12kUgk0Ol0xP6fjsNMDot+SlRVxfv37/HDDz+I/ft1WeMBwG63w+/3IxQKIRAIwO12w+12CwFRtBwFvSiKArvdLmwRJN5ms4l2uy2unfztFCBD4qOYAzkIiEJqgV8GC0VREIlEsLCwgLW1NaytrSGRSCAQCGjCbOXounFxu93idxpweJafDhb9mMg+4H6/j1wuhx9//BHff/89Tk9Pr1XwiqIgHo9jbW0Nm5ubWF5exvz8PEKhkJjZaQCQhSZbw8ngRjdZSLT3NrKgU3Qh3WiF4HA4REitHFZLEXZkmTcyOk4Ki/1ysOinJJ/P4+3bt3jz5g3y+bzmsVlbkq1WK/x+P8LhMObn5zE/P49EIoG1tTWsr69jZWUF0WgUoVBIE78+yUw6CeSmpJBaAGLJPckMflnbBjMdLPopqVQqODk5wfHxMZrNpuaxWRvIotEoNjc38eTJEzx69AhLS0uIRCIIh8NidqeZ/Tp81xQeqyjKpZbaV3Gd7Lb7yKDPl0U/Bd1uF7VaDfl8XgielsWzWuZbrVYEAgHE43FsbGxgZ2cHz58/x6NHj5BIJODxeDTL5nF97bPAKId+0Dmve1bmVcBoWPRjIn+Z5H3tVRGNRvH5559jZ2cHDx8+xNbWFtbW1hCPxzWW+FHXPGvhjxIVi+72w6KfAhI87WdniaIoiEajePjwIX7961/j+fPnuH//PhYWFuD1esXyfdxltdlE2O/3Ua/XUavVZpZ5+KmysLBgeD+Lfgqo0MWsLfaKouDevXt4+vQpnj17hsePH2NjYwPxeBw+n09TiYaEf9czy0aJVn7v3W4Xqqri5OQEp6enKJfLwrsgP9csA8Gf/vQnw/tZ9CPQi6rb7YpCF/IX6jKQdX55eRkvXrzA7373Ozx58kT4uBVFESKX9+93WezEqPfYarVQKpVQLBZRqVSQyWSwv7+Pg4MD5PP5mf2PPkVY9DOC/NVyYMoo5C+u0SwTiUSwtbWFZ8+e4Ve/+hV2dnawsrICv98vAmTuksAnmb1HoaoqXr58ie+++w6np6fI5XJIp9PI5/NoNBqiIInRcccxOhqtpPTHG7Taug3HN4JFPyFyRZtJElWMcDqdCIfDuH//Pr766iv85je/wWeffaZJHSXr/F1i2vcj1y7o9/uoVqt4/fo1/vrXv+Lvf/87Dg4OoKqqRjRmWcpPAot+CgZlxlFW2CgsFotwx21ubuLp06d48eIFPv/8cyQSCbhcLhERZ2ZoVUUFSqgsGO3b37x5g2+//RbffPMN3r59e6EKEQveGBb9NUJZZsFgEIuLi3jw4AGePXuGJ0+e4N69e4jFYpoAm7s0w8v1A/VhwPL99BjVDKQ4f4oAbDabyGazePXqFf7xj3/g9evXKJfLN/32PilY9FMwqEGD7MKzWCzw+XwIBoMiYo5i0yORCJaWlrC1tYWHDx9iY2MDkUhEhM7eNcEDv3wezWYTqqoin88jl8uhVCqJyr76op8kdEoIkh8rFot4+/YtXr16pZndqfruJFsvM8KinxB9KWj5fvqi2e12hMNhLC0tYX19HQsLCyJPnG6xWAzz8/OIxWIIh8NwuVx3RvD66rdUTqxYLIr6gXt7ezg6OkImk4GqqiLFl7wilPmnXwmQTaVWq11Yzl9F3MRdhEU/IVQAQp/L3ev14Ha7EQgERDLM5uamqAZDZaAoA45+Ul74XermQiWuVFVFoVBAOp1GOp3G+fm5qDJ0eHiIVColimNMOzNbrdZLVR8yIyz6EehFSF1ZKGWUsNvtSCQS2N7exhdffIGHDx9idXUVkUgEfr//QueWu9S+SV8Wm2oGnpyc4N27d9jd3cX+/j4ymQzK5TJKpZKmI88szs2MD4t+CqjMUzgcFvetr69jZ2cHz549w4sXL7C9vY1oNCoKPBr52vXtpMZlWJHMSV6rbyQ56nV6g5vcjotabsmz+/HxMX766Se8efMGh4eHmpLVRowKOjK6dhb85LDop8DhcCAUCgmhu91uPHr0CE+fPsUXX3yBjY0NxGIxuN3umQZVyK8d9GUfJhj93njYdcj7ctpH040MbNRjL5PJiEYeVMCyUCigWCwKo129Xp/4PbKf/Wpg0U8BtVd68uSJaNq4vb2Nhw8f4t69ewgGg6I0FXBRiJddxusr0sozpD56Sx4kZF83WcT1xjL5eXJXXPnWaDREnX9q13V4eIjDw0Mkk0kUCoWplu16gbPgrwbLiA+WP3UD+v0+UqkU9vb2kM/nRfmqhYUF4Xqj581ynz5optaXmTZ6ndxbj7LQarXaBZeY3CmXluzUNJP24fKtUqmgXC6jUCiI2vSDGBWOzMyWfr9v+OVj0U8JfeEbjYbGuEf12q8CeT9NNwDCZmBkEJSDYaiZJi27i8UiyuWycH/JHXIpiaVYLKJQKIiOuVQRVy6XdZ31AZnxGSR6Xt5PiaIocDgcYtYdZKybBfISXR9/TshLe73Bi2b6VquFarUqluTJZBLZbFb0vK/X66hWq6hWqyiXyyiXy5pW2M1mc+wwY6PrvynYNqCFRT8l+uX0NFb4cZAFr5/l9Xn19Dwj0cnutEKhgFQqhQ8fPiCVSom0VBI+3eSKt5O0q7ptArtt13PTDBU9f1hajPakRgKbxn2m/1uenfQzPCWhyOenIBX9jC+/jkRfLBaRyWRwdnaGs7MzFItFIXiqh09hsEZCv856fKPQu/nYbz8anulHMEjAs5rR9cI2ekxORJFz+SkkWI5KMxI8+dSbzabYr5NLrVQqaZbvw8Suv67bgH5Lc5uu7bYyVPSfaoTYdXHZz0duJGHkOjNyoRm1oJK3GkZGPLm7bqlUQj6fRz6fv2DEk41ydMxPYeY0uj4qCc4pyhfhmf4SyMIEcGF/P+g1gPHsTct2/d6dXGl0I8Ohy+WC2+0Wx3Q4HOIxOod+hs/lcshkMiLmXU5dpWuRVwizFPx1GfgikYjId1AURfTju+2D13UxVPR7e3vXdR23Av2+0G63izZNcjgtQcYxmiWBj7OvHFsvH5OEJQe5yHtp2Wcuz/Ak/F6vJxpN+P1+BINBBAIB0dmGauGTcCmdNZvNIplM4vT0FGdnZ0L0ci87muWvaqk86+MpigKPxyPev8PhgN/vx8LCgqblNYtey1DR/+1vf7vSJf6sg1dmdXwSgMfjwcLCApaWlhAIBDQJM8AvqZwUitpoNNDv9+FyueDxeODxeDTpsiR4Co6pVCoolUriVqlURLAMzbw0OMguOooJ8Pv9iEajmJubQywWQygUgt/vF+eUry+fz+P4+Fhkt5Hxjvbx8upCZtLqsdcZfKMoClZXV/Hw4UPs7OxgfX1dCN/n84k+elRjkAX/kaGi/8tf/nJd13FrkAXq9XqxvLyMlZUVBINB0UqZvkiU101ZYyR6Wh3Ql85isWiW2rVaDaqqCkMa+cNrtZqmSgzN7rKBzuFwwO12i5z8eDyOubk50ctOzv5rt9tilj86OsL79+/x4cMHTQ67voINfQa0p9fP/sMweo7VahWfl1zvjz5j+lxGuQP1vvZwOIzHjx/j97//Pb766ivcv38fPp9voFeF+chQ0X/zzTfXdR23Bln0TqdTFL2gSDt56W6xWDQlnXq9niiJRS2jaUsg798phr3ZbIplvb5whLy3lr/IlM9PufvhcBjhcBiRSASBQEDM9sAv5aHL5TLy+TzOzs5wfn4ugnGoWo1RiWjZiEefx6AknWEoioJgMIhQKIRgMChacQEQ7sNyuSziBCqVytjHXlpawpdffonf/va32NragtfrHfu1Zmeo6E9PT6/rOj5JSND66Djgo0D1e3q9ccwoyIeer0eegR0OBzKZjOhBT/tan88ninK0220RXSdvIWgVYXTN8nnk69AHAOlfRzM5DXherxfRaBSxWAyJRAJzc3Ni8ASARqOBcrmMbDaLbDaLTCYjxE+DaKvV0qwI6Nw+nw9LS0t49OiRELw8MF71tvFTh633l8BoH0z0+/2xyjfRQDApzWYTNptN2AZyuZyo6ENuPDkNVq5DZ2SVp8FJHqz05cBk6Dkkclp1RKNRRKNRRCIR0Vk3HA6Lph2UjEQrJBqQKMa/WCwim83i7OxM1K+ngaDf78NmsyEajSIejyMajWpmeIpdYH5h0GfBov9EkfPcO50O6vW6xlcvu+30qwx5kJFXIvQ6uboPGQb1HgmHwwGn0ym2GfF4HIuLi1hdXcXi4iJisdiFFtpGe3ra7lDcf6FQwOnpKfb39/Hu3Tu8f/8eJycnyOVyaLVacLvdCIfDCAaDwkU5KsuQ0cLBOWMgh7rKgpmVRXja48hiHoT8PzRKPOn1ehrrNome6vh5vV74/X7xu6Io4ubxeODz+RAKhTA3N4d4PC5m4EAgIGwa49Dr9dBqtVCpVDTGyUAgALvdjl6vh2KxKAYiOrY+Io8ZDcfej4EcUPOpIf8PjfbiNGiQm08WfTgcRiwWExV7w+Ew/H6/cIn5fD5NhV+6n+IFJomEs1qtwnDqcDjEIGO328VgQEt8+fp5YpocXt6bGCODF7kFPR4PQqEQ5ufnsbS0JMp1BwIBUS3I6/VqYhKobr+8ZZgEOjdtJ/r9X1pXpdNpnJycIJ1OC+HrPQk8248Pi57RQIY8RVEQCAREff5EIiFq91MMgqIoYqkt7/cvO/vabDbY7XZ4PB6Ew2HMz88jFArB5XKh2WxqtjQ8008Oi57RYLFYNLEGtG+Xl+8keDlQycjVOG2FX1qB0ODj8XhEOK3+uczkcPoRMxYstLsDz/SMBoovkMtcU7Scy+UytAHIPv1pjWvySkGOiqQinRQyLD+XmQ4WPaNBFhtFzFFYL/Wko2W+nGPQ7/eFL/8yVnW5BgAlC6XTaRSLRbGfl+MQOPpuclj0JmZQ2Su5lp7NZkO320WlUkE+nxd7e/kmu+1o/02pyJMgN7ssl8s4Pj7G4eGhSBIiy71RPULefowPB+eMwW0NzhmHUcE58qwJQDPLWiwWtNttVCoVpNNpuN1uEWFHwTv64Jz5+XnMzc1dKjiHsgJ//vln7O7uYm9vT7jrKIwX+BicpN8aMMPh4JwxuK3BOfrw01FhuHJFHELei9Pz2+02AIjw3mKxKIJtyDVHFn63241gMIh4PI6lpSWsrKxgcXFRuPf0YbhyCa5BYbgnJyc4ODgQYbinp6eia47VahVVeuVYexb7+PDy/hOFstpsNhucTqfwl1NMPCXcyCm8wxJuZNFT1mCn09H0gNevGkjI5NOnFN9YLKZJtqFYeX2uPy3jqakGJd3kcjmcn58bJtzU63UUCgWUSiW0223NLM+DgBZOuLkCqIKOUWotidKoXNag1NpRNeT0qbXyMluOlCPR61NrVVUdmlpL56QyXfI1jEqtTaVSYgVAqbXhcFjE48tLfuBjai3V7JNTa+v1uqYeIKXW0kBEg0I2m0W1WhWZdvQ58jJ/OENFv7y8fF3XcaugWcPpdCIQCFwolUUzrMViEftfyv222+1i5pWt2foiGnIBDaqxR0U09AUq5WQYuSAmFaiglNZQKASv16spoqGqKnK5nKhxn8vlRHmvQbO+vB2QByt6bFxSqRROT08RCoUQCAQGFtGgAWlYK2vZHlGpVHB8fIzd3V2srKxga2sLPp9P81xmMENF/+WXX17XddwKaFam2djtdmNlZQUrKysIhUJwOp0iX11fLqtaraLf78PpdIoZV1EUEbFGe2W5xTMtbY3KZbVaLZEPLxusKDw1EAiIvHLKSKPqNLQCISMcGcYODg7w4cMHWK1WlEqlgeWy9Gm4k1bMIWhQy+fzYpDU2xrGLZelJ5lM4l//+hd8Ph+63a4ol0XwjA8RwahnqOj/+Mc/XsnF3GbkWZkKYy4uLor8bUoIASBEr6oq6vU6+v2+mIVpxpULY8pGK7kwJnWYMSqMKVfG7feHF8b0+XzCaEbnq9frotgEFdeQjXlUqotsAHqj3ySCN3KhkQuQjIPTor+GYrGI169fo9PpIJlM4t69e6JqMaUD06BrVuF/8cUXhvcPFf0f/vCHK7mY2wwJlJbqlOIpl8CWU1K9Xi+CweDIEtgADJf4o0pgy8KXa94rigKfzydKYMsrC7kENhnPyGpOKw05wq3ZbAKAZhlPf08yw1+nt6fRaOD4+BjZbBbff/+9yPTz+XxIJBJYWlpCOByG2+2eOuvvU2cq0W9ubl7JxdwFaKlKS366b5j1mGwBDocDiqIIg5lRswsSrVz7Xu5CIxfIpGw3WoXIS2halZAfnFpalctlTflree8+Tr2+aT8zmcsel9pmFwoFzf3hcJibXQD485//bHg/W+8vwWXizOXSVNTyelBbK7nLjbzUJ3cduelkAyPw0ZpN1vRQKCSKVWazWVQqFSF8AMIY2el0NPaNWXFdoisUCqjX66KCsT6oyuxwcM4YDBL2oM9n3IFANtAZ5aHLQUEkbLnzDaWfkrHQyPVHAwvVswsGg6JoZbFYRK1WE4OIvsvNrNtaXRX0nuXZnFYBzEV4ph8D+iLpDVWDAlwmQV5K689Df9tsNrFUt9lsF1pVy2LXL81pMJD95yT8fD4vDJDya/VuukHXbPQZXTejwoyZi3Ds/ZToZ5ZpIsGM0lSNzgFAYxCUH5PFrr8GWfhkS6AyWLFYTDSXcLvdqFQqwoNAxkUKd6WVxSTdbq6LQQFDzGB4pp8SMrKREGhGnXUZZlnc+ug+ecAZNujIUXxUgoqWvj6fT7Sspvj3SqUCVVXFTe5fP87eeNYGO2a2sOinhLrBNptNESVHaaWzXiHpl7CydX7YTC+/hox+1HkG+GWGn5ubE/EBcnNNChzK5/OatlMkfvK9k/dBhkV+u2HRT0G/30ehUMDe3h5yuRwURUE8HsfCwoIwmtHzrmIA0Bv+jIQvP5989DTTWywWOJ1OhEIhTSIOeQioWg0JnUJkaTVALbbpvlKphHw+j0KhAFVVh167/BkyNwOLfgp6vR7S6TRevnyJ/f19+P1+bG9vi9TPUCikiQSblfDlPbo+o2zQTE8DD/nrKZRXjhMwSr2lQYB6ylEIMbWjqtfrUFUV+XweyWQSHz58wOHhIZLJJAqFggj4kWGh3w5Y9FPQ7XaRzWbx73//G99++y3cbjeSySRKpRLq9To2NzcRi8XgdrvHsnRPOijIS3z9MYYZBylwh1Yjo65DPxDQUp4ChSiHIJ1OI5lM4uTkBKlUCtlsVvSly+fzyGazqNfrY70vo98HZQMy08Gin4J2u41CoYDDw0P88MMPACCy1yj3e3t7G7FYTBO+C1z8Yk+6GhiUSDLq9bIvG4CIUhv33INWA+12GysrK3jw4IHGFpBOpzXVb96/fz80i26c98zMBhb9FDQaDVQqFRSLRXHf0dERer2e2OOenZ1hdXUVkUhEVJCR03Pl2HyjAWEYl9kuDJpNL3NOeTCglNl8Po+TkxNRSWd/fx/pdFqk0ZJRsNVqaY5j9Puo6+IBYTJY9CPQz6q9Xk/4seXMsU6ng/Pzc9RqNZydneGnn37CxsYG7t27J+LAfT4fPB6PyMKjgUCOmf8UYyP0YcVyN9uFhQV89tlnSKfTyGQySCaTODw8FGWw8vk8VFWdWrizzg8wAyz6CaESVPpUUavVKgYDMm5RNdfFxUWEQiEEg0FNDDwVkaTEkFkb/m4Kq9UqEoEikQjW1tZErb1kMomDgwPs7e3h+PgYmUwGqqqi0WhoiokYFRKRk5Cq1Sqq1SrH1E8Bi35CKDxVDsyh+wkq6dRsNpHJZESfdmrRFI1GsbS0hK2tLTx8+BCbm5uIRCKaBpCfsvDlwYuCguSyXvPz89ja2hLFR8jvL6cd6z0H9Hi73UaxWMTbt2/x3XffaeLrqXjIp5IzcFOw6KdAHxFH2O12EajS7/dFRBtBqbihUAgLCws4Pz9HtVpFq9XCxsYGYrEYvF7vnZnxZaiqEBXJXFtbu5BZKHsJyEUoFxWh+3K5HJaXl2Gz2fD69WuUy2WRHciMhkV/jfR6PTQaDbH3r1arwq1VqVSws7MjZqtBWXOfKvL7GFTGSQ8JmWoI0GBQqVQQj8extraGb7/9Fv/85z/x5s0bzqobExb9FAwS4rj7y36/j3K5LPa5xWJRBPZ0u10x49Ny36xYLBZRoozo9XoaA+H9+/fh9/vR7/dxeHiIcrmsaWPNy/yLsOgnhKLbJtl3Dwo0abfbSKfTYolbr9dRKpWws7OD1dVV4crTh9x+6owS4rD3KLs4I5EIHj9+jEajgWg0itPTU2SzWWQyGeRyOdTrdc3+ngeBX2DRTwi5pahwxTiM+qLl83ns7u4KwxYZCRcWFhAIBO5cgcdZvg+/349nz55hc3NTVP7d29vD+/fvkc/neZ9vAIt+BPovKGWrzXLp3ev1UC6XRbmqVquFfD6Px48fY3NzE/F4HD6f70Kn1kki6j5VRg2YTqcTc3NzmJubE59jIpHAxsYGVFUVuQV3+TOaFBb9FFALqUm7so6i0Wjg8PAQqqqK6DXyXycSCVHGWj7vXf8yT/L+rFYrgsEgnE4nFhYWBnbxMTss+ilwuXuogeEAAAdLSURBVFwipHbWNBoNnJ6eimYXpVIJqVQKW1tbWF9fx/z8vGbWH8ZVfOFv+yBjsVjg8Xjg8Xhu+lJuLSz6MZGXiNRHjtpHXQW5XA6vXr1CKpXC3t4ednZ28Pz5czx69AiJRAIej0dsMa7TrTfOUlkebG77IGFGWPRTYLPZ4PF4EIlE4HK50Gw2Z15XvdfriQ44VKCiUCggmUxieXlZdIUNhUKahB7qYgNcj+CM7Ao3KXRezn9k0P+BRT8lgUAAq6urWF1dxdHRkaZoxKxdQ7lcDu12G+fn5/j+++8Ri8WwsLCA9fV13Lt3D8vLy4jFYiK2X1GUK9t+ABDx8RQaC0BTg3+S4JtpGDao8MpiNCz6KQmHw3jw4AGOj49RqVSQSqXEY7Oebfr9vpj1Dw8PoSgK5ufnsba2ho2NDaysrGBubk4z61Osv5zOS4KQw13lDjfAx3h5oxZelGxELbnkRhlUjcfr9cLn88Hv94ucAzI+yj52Ohdz/bDox0S/fI1EInj06BHS6TRSqRQymcy1+YQbjQaSySRUVcXx8bFoA00id7lcIrmHevGRr59cgiTaZrOp6Rord92hWbvf74u4d2oiYfQ6t9uNSCSChYUFrK2tYX19HfF4HMFgEIqiaI45yYpAjxlclVcJi35KAoEA7t27h2w2i+PjYxSLRZydnYlSUled8tnpdMQ+3wgSIeXwe71ejeipwGWj0biwTKeceDIUkujp+YNi3K1WKyKRCJaXl7G1tYXt7W2srKyIRpLk9ZBvNECRYZSaf8orAoq5b7fbIjSXthKzdpuaAcuIpShbRQbQ6XRQLpfx/v17vHz5Ei9fvsS7d+9wfHyM8/PzC9l1wOUbM0xbMIKy++TlPQUCXQVerxexWExsOcjTQNsMEq3L5RItt+PxOOLxOKLRKPx+v7jefr8vKvGoqgqXy4X5+XnEYjEEAoEr9aDcAQyXQiz6Kel2u2g0GigWizg/P8f+/j52d3fxww8/4M2bNzg+Pr5URZi7hFxZR26z5XQ6RfLM+vo61tfXsbi4iGg0KppPdrtdVCoVJJNJ5PN5eL1ebGxs4MGDB9jY2EA0GuVl/mAMPxhe3k8JFYcIBoOiSITf7xf94v1+Pw4ODpBOp4ceZ1wfu9HgIZfE1iPnqY9inIq98rUOq+mnLy5CxyJjoB5qppHNZnF4eIhIJAKfz6eZ6akddaVSgcPhwE8//YRisQifzycad9B5eAAYDYt+Sqh+vFwbjvrERaNRhEIhUQL7/Px84HEu49+Xu9pehnHPP0y8l6FUKqFSqeDo6Mgwi5E8B3T+9+/fQ1EUPH36lGvkTQGL/hLQF5R+Kooi3GU0C62srCCVSokqOuVyGeVyGaqqXlt9t1GVbG8auVjGOFDaLMXW8+w+GSz6SyBXgqHOsIFAAHa7HYFAACsrK3j27JnI8U4mkzg6OsLR0RGSySQymcxYTSAuy20Q9ixZW1vD4uIivF6vuI9z5ceHRX9J5FmG9vmBQABerxfz8/NoNpuoVCrI5/M4OzvDyckJTk5OcHZ2hlwuB1VVRf13mu309eLIZaX/SXXm6e/r+NLTvt5ms4kb1fAndxu53PSlw+X3RceiY5B1Xx5A5WCefr8Pu92OSCSC+/fv4/nz54jFYgP/F8xg2Hp/xVAnGH1TSH0PeDnohXzSFBBDnWTpVqvVNDc6Hr2ejGm0Dx4XeT9NwtP/LQfvKIoCRVE0sQD0u8vlElsf8vNTDAMNbHK3X5/PB6/Xq8lglG96u0kikUA8Hoff77/C/94nD7vsbiM0KMgRclT9lSLnarWapl88dYul2u+VSgXValVTO55WCIBxfIA+qk2ewWXB62deuo9ET0Knn/S72+0Whs5erycGM3pv/X4fNpsNLpdL81o5co9mfrkjkL4zEM/uQ2HRfwrQDK1vGCkPCHJJaPl3WvLL7rpxW0XJrkO5Cq++Th/dJwvQKNJOXuLLve/kWH86DgXqkNjpfvn8zFSw6G8L03StnVTE140+nXdc3z89l2fsK4FFf9OMmmkZZsZwRN5Nw8JmbgMs+lvGZZbsV73cv4lBiwfK2cPLe4a5uxiOmGwaZRiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJPBomcYk8GiZxiTwaJnGJNhH/G45VqugmGYa4NneoYxGSx6hjEZLHqGMRkseoYxGSx6hjEZLHqGMRn/H71+ty8MNW7iAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current iteration: 62\n",
      "Starting forward run...\n",
      "Starting adjoint run...\n",
      "Calculating gradient...\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "algorithm = nlopt.LD_MMA\n",
    "n = Nx * Ny # number of parameters\n",
    "\n",
    "# Initial guess\n",
    "x = np.ones((n,)) * 0.5\n",
    "x[Si_mask.flatten()] = 1 # set the edges of waveguides to silicon\n",
    "x[SiO2_mask.flatten()] = 0 # set the other edges to SiO2\n",
    "\n",
    "# lower and upper bounds\n",
    "lb = np.zeros((Nx*Ny,))\n",
    "lb[Si_mask.flatten()] = 1\n",
    "ub = np.ones((Nx*Ny,))\n",
    "ub[SiO2_mask.flatten()] = 0\n",
    "\n",
    "cur_beta = 4\n",
    "beta_scale = 2\n",
    "num_betas = 6\n",
    "update_factor = 12\n",
    "for iters in range(num_betas):\n",
    "    print(\"current beta: \",cur_beta)\n",
    "    \n",
    "    solver = nlopt.opt(algorithm, n)\n",
    "    solver.set_lower_bounds(lb)\n",
    "    solver.set_upper_bounds(ub)\n",
    "    solver.set_max_objective(lambda a,g: f(a,g,cur_beta))\n",
    "    solver.set_maxeval(update_factor)\n",
    "    solver.set_xtol_rel(1e-4)\n",
    "    x[:] = solver.optimize(x)\n",
    "    cur_beta = cur_beta*beta_scale"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the optimizer quickly finds a topology that works well and slowly refines it as we continue to \"binarize\" the design."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(10*np.log10(0.5*np.array(evaluation_history)),'o-')\n",
    "plt.grid(True)\n",
    "plt.xlabel('Iteration')\n",
    "plt.ylabel('Mean Splitting Ratio (dB)')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can view the final spectral response to verify that the design performs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting forward run...\n"
     ]
    }
   ],
   "source": [
    "f0, dJ_du = opt([mapping(x,eta_i,cur_beta)],need_gradient = False)\n",
    "frequencies = opt.frequencies\n",
    "source_coef, top_coef, bottom_ceof = opt.get_objective_arguments()\n",
    "\n",
    "top_profile = np.abs(top_coef/source_coef) ** 2\n",
    "bottom_profile = np.abs(bottom_ceof/source_coef) ** 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nO3deVyVZfr48c/FjoIbKJioWGlqLiS4Z6GVNZlmNZVNTtZM2TJTVpOl3+nXOE2NlS3TNqXZYrk2mWb7pmSLC+C+a7kvgZoJCrJdvz/OoyEcEIFzDnCu9+t1XjzLfT/PdR/gXOfZ7ltUFWOMMaakAF8HYIwxpmayBGGMMcYtSxDGGGPcsgRhjDHGLUsQxhhj3LIEYYwxxi2PJggR2SYiq0VkhYikOcuaiMiXIrLZ+dm4jLojnDKbRWSEJ+M0xhhTmnjyOQgR2QYkqer+YsueAg6q6hMiMgZorKoPlajXBEgDkgAF0oFEVf3FY8EaY4w5iS9OMV0JTHGmpwBD3ZS5FPhSVQ86SeFL4DIvxWeMMQYI8vD2FfhCRBSYqKqTgBhV3eus3wfEuKnXAthZbH6Xs+wkIjISGAkQHh6e2LJly0oHWlRURECAf12S8bc2+1t7wdrsL6rS5k2bNu1X1abu1nk6QZyvqrtFpBnwpYhsKL5SVdVJHpXiJJxJAElJSZqWllbpQFNSUkhOTq50/drI39rsb+0Fa7O/qEqbRWR7Wes8mmZVdbfzMwOYA/QAfhaR5k5gzYEMN1V3A8UPB+KcZcYYY7zEYwlCROqLSOTxaWAgsAaYBxy/K2kE8IGb6p8DA0WksXOX00BnmTHGGC/x5CmmGGCOiBzfz3RV/UxEUoF3ReTPwHbgOgARSQLuUNVbVfWgiPwLSHW29aiqHvRgrMYYY0rwWIJQ1Z+Arm6WHwAucrM8Dbi12PwbwBueis8Y4335+fns2rWL3Nxcj+2jYcOGrF+/3mPbr4kq0uawsDDi4uIIDg6u8HY9fZHaGGNO2LVrF5GRkcTHx+OcXah2WVlZREZGemTbNdWp2qyqHDhwgF27dtGmTZsKb9e/7gUzxvhUbm4uUVFRHksOxj0RISoq6rSP3CxBGGO8ypKDb1TmfbcEYYwxxi1LEMYYv3HgwAESEhJISEggNjaWFi1anJjPy8ur0rbz8vJo0qQJDz/8cDVF63t2kdoYU2PNXb6bCZ9vZM+hHM5oFM7oS89h6Hmlet2psKioKFasWAHAuHHjiIiI4IEHHqiWWD///HM6duzIrFmzeOyxx9yWKSgoICio9nzs2hGEMaZGmrt8N2PfX83uQzkosPtQDmPfX83c5Z7pVOGpp56iU6dOdOrUiRdffBGALVu2cO655zJs2DA6dOjAddddR05Ojtv6M2bM4P777yc2NpalS5eeWB4XF8eYMWM477zzmDNnDueffz73338/SUlJdOzYkbS0NK666iratm3LuHHjPNK2yqo9qcwYU6f888O1rNtzuMz1y3ccIq+w6KRlOfmFPPjeKmYs3eG2TsczGnB/cqvTjmXJkiVMmzaN1NRUCgoK6NGjB8nJyYSHh7Nu3Tpef/11evXqxU033cTEiRO59957T6p/9OhRUlJSeOONN9i3bx8zZsygR48eJ9Y3a9aM5cuXA/D8888THh5OWloazzzzDEOHDiU9PZ2GDRty5plncu+999KoUaPTboMn2BGEMaZGKpkcTrW8Kr777juuueYawsPDiYyMZOjQoXz77bcAtGnThl69egEwfPhwvvvuu1L1582bxyWXXEJYWBjXXnsts2fPpqjotzivv/76k8oPGTIEgM6dO9O5c2diYmIICwsjPj6eXbt2VXv7KsuOIIwxPvGPweeWu77vE/PZfaj06ZwWjcKZdXvvMutlZWVVObbiSt4e6u520RkzZrB48WLi4+MByMzM5JtvvqF///4A1K9f/6TyoaGhAAQEBJyYPj5fUFBQneFXiR1BGGNqpNGXnkN4cOBJy8KDAxl96TnVvq9+/foxZ84ccnJyyM7O5oMPPqBfv34AbN26ldRUV7dw06dP5/zzzz+p7qFDh1i8eDG7du1i27ZtbNu2jRdeeIEZM2ZUe5zeZgnCGFMjDT2vBeOv7kyLRuEIriOH8Vd3rtJdTGXp0aMHN9xwA927d6dXr17ceeeddO7cGYAOHTrw7LPP0qFDB44ePcrIkSNPqjt79mwuueSSk/o4Gjp0KHPnziU/P7/aY/UqVa0Tr8TERK2KBQsWVKl+beRvbfa39qrWvDavW7fO4/s4fPhwtW1r8+bN2rVr12rbnqdUtM3u3n8gTcv4XLUjCGOMMW5ZgjDGmDKcffbZJx6s80eWIIwxxrhlCcIYY4xbliCMMca4ZQnCGGOMW5YgjDF+JTAwkISEBLp27Uq3bt344Ycfyi2/bds2pk+ffmJ+xYoVfPLJJx6Lr6CggKZNmzJmzBiP7aOiPJ4gRCRQRJaLyEfO/AARWSYia0Rkioi47e5DRJ4SkbUisl5EXhAbhsoY/7PqXXiuE4xr5Pq56t0qbzI8PJwVK1awcuVKxo8fz9ixY8st7+0E8eWXX9KuXTv+97//4XpMobTCwkKP7b84bxxBjALWA4hIADAFGKaqnYDtwIiSFUSkD9AX6AJ0AroDF3ohVmNMTbHqXfjwHvh1J6Cunx/eUy1J4rjDhw/TuHFjwPXQ8OjRo+nUqROdO3dm1qxZAIwZM4Zvv/2WhIQEnnzySR555BFmzZpFQkICs2bN4uDBgwwdOpQuXbrQq1cvVq1aBbjGmxgxYgT9+vWjdevWvP/++zz44IN07tyZyy67rMynrGfMmMGoUaNo1aoVixYtOrE8Pj6ehx56iG7duvG///2P5ORk7rvvPpKSkkhKSiI1NZWrr76atm3bVtugRR7trE9E4oBBwOPA/UAUkKeqm5wiXwJjgddLVFUgDAgBBAgGfvZkrMYYH3hzUOll5w6FHrfBV/+E/BKd9eXnwKcPQZfr4MgBePemk9ff8vEpd5mTk0NCQgK5ubns3buX+fPnA/D++++fOLLYv38/3bt354ILLuCJJ57g6aef5qOPPgIgJiaGtLQ0XnrpJQDuvvtuzjvvPObOncv8+fO56aabTjw78eOPP7JgwQLWrVtH7969mT17Nk899RRXXXUVH3/8MUOHDj0pttzcXL766ismTpzIoUOHmDFjBn369DmxPioqimXLlgHw6quvEhISQlpaGk8++SRXXnkl6enpNGnShLPOOov77ruPqKioU74f5fF0b67/AR4EIp35/UCQiCSpahrwe6BlyUqqukhEFgB7cSWIl1R1fclyIjISGAmuX1pKSkqlA83Ozq5S/drI39rsb+2Fmtfmhg0bntTbanhh6Z5LC44dIz8ri4jDu3F3XllzDpKdlYUczSasRP2crCwKCwvL7dE1PDz8RFfeS5YsYfjw4SxZsoT58+dz1VVXcfToUerVq0efPn1YuHAhkZGRFBQUnNhmbm4ueXl5J+YXLlzIO++8Q1ZWFt27d2f//v3s3r2bY8eOMWDAAHJzc4mPj6ewsJC+ffuSlZVFu3bt2LBhQ6k4586dy/nnn09BQQEDBw7k0Ucf5V//+heBgYGoKoMGDTpRp7CwkIsvvpisrCw6dOhA+/btiYiIIC8vj9atW7Nhwwa6dOly0vZzc3NP6+/BYwlCRK4AMlQ1XUSSAVRVRWQY8JyIhAJfAKVOponI2UAHIM5Z9KWI9FPVb4uXU9VJwCSApKQkTU5OrnS8KSkpVKV+beRvbfa39kLNa/P69euJjIz8bcGtn5cqE4Tr9AEN45zTSyeThi1d24iMLFU/Eld33yftw43j6y+++GIOHjxIbm4uISEhhIWFnVgXHBxMeHg49erVIygo6MTysLAwQkJCTswHBAQQERFxYl5EiIyMJDQ09KTlwcHBNGjQAHAlqeLbPG7u3Ll89913JzoKPHjwIKmpqVxyySWICDExMSfqBAYG0rhxYyIjIwkKCqJevXon7Ss0NLTU9sPCwjjvvPPKfW+K8+Q1iL7AEBHZBswEBojIVFVdpKr9VLUHsBDY5KbuVcBiVc1W1WzgU6DsDuCNMXXPRY9AcPjJy4LDXcuryYYNGygsLCQqKop+/foxa9YsCgsLyczMZOHChfTo0YPIyMiTvumXnO/Xrx/Tpk0DXAk5Ojr6RCI4HYcPH+bbb79lx44dJ7oNf/nll33abbjHEoSqjlXVOFWNB4YB81V1uIg0A3COIB4CXnVTfQdwoYgEiUgwrgvUpU4xGWPqsC7XweAXoGFLQFw/B7/gWl4Fx69BJCQkcP311zNlyhQCAwO56qqr6NKlC127dmXAgAE89dRTxMbG0qVLFwIDA+natSvPPfcc/fv3Z926dScuUo8bN4709HS6dOnCmDFjmDJlSqXimjNnDgMGDDhpAKErr7ySDz/8kGPHjlWpzZVWVjev1fkCkoGPnOkJuD7sNwL3FiuTBEx2pgOBiU65dcCzp9qHdfd9+vytzf7WXtWa1+ba1t13beGp7r69MuSoqqYAKc70aGC0mzJpwK3OdCFwuzdiM8YY4549SW2MMcYtSxDGGK/SMp4ONp5VmffdEoQxxmvCwsI4cOCAJQkvU1UOHDhAWFjYadXzyjUIY4wBiIuLY9euXWRmZnpsH7m5uaf9QVjbVaTNYWFhxMXFlVumJEsQxhivCQ4Opk2bNh7dR0pKymk9DFYXeKrNdorJGGOMW5YgjDHGuGUJwhhjjFuWIIwxxrhlCcIYY4xbliCMMca4ZQnCGGOMW5YgjDHGuGUJwhhjjFuWIIwxxrhlCcIYY4xbliCMMca4ZQnCGGOMW5YgjDHGuGUJwhhjjFseTxAiEigiy0XkI2d+gIgsE5E1IjJFRNyOSSEirUTkCxFZLyLrRCTe07EaY4z5jTeOIEYB6wFEJACYAgxT1U7AdmBEGfXeBiaoagegB5DhhViNMcY4PJogRCQOGARMdhZFAXmqusmZ/xK4xk29jkCQqn4JoKrZqnrUk7EaY4w5mXhy8HAReQ8YD0QCDwCDgW3ANaqaJiLPAwNUtXOJekOBW4E8oA3wFTBGVQtLlBsJjASIiYlJnDlzZqVjzc7OJiIiotL1ayN/a7O/tReszf6iKm3u379/uqomuVvnsTGpReQKIENV00UkGUBVVUSGAc+JSCjwBVDopnoQ0A84D9gBzAJuBl4vXkhVJwGTAJKSkjQ5ObnS8aakpFCV+rWRv7XZ39oL1mZ/4ak2eyxBAH2BISJyORAGNBCRqao6HNeHPyIyEGjnpu4uYIWq/uSUmwv0okSCMMYY4zkeuwahqmNVNU5V44FhwHxVHS4izQCcI4iHgFfdVE8FGolIU2d+ALDOU7EaY4wpzRfPQYwWkfXAKuBDVZ0PICJJIjIZwLnW8ADwtYisBgR4zQexGmOM3/LkKaYTVDUFSHGmRwOj3ZRJw3Vh+vj8l0AXb8RnjDGmNHuS2hhjjFuWIIwxxrhV7ikmEekNHL/rqDmQA6wBPgamquqvHo/QGGOMT5R5BCEin+K6JvA5cBmuBNEReBjXbasfiMgQbwRpjDHG+8o7gvijqu4vsSwbWOa8nhGRaI9FZowxxqfKPIJwkxwQkYtEZLCIBJdVxhhjTN1Q4YvUIvIMrqejuwIfeCwiY4wxNUKZp5ichPAvVT3kLGoFXOdMr/Z0YMYYY3yrvCOI94GZInKPiATiGp9hAbAIe6rZGGPqvPKuQXyvqpcBB3HdySSqmqyqvVT1ea9FaIwxxifKu801SEQG4RrJbSjQVUTmiUhXr0VnjDHGZ8q7zXUurtNJ9YAbVXWEiJwBPCoiqqq3eSVCY4wxPlFegmitqleISAiwGEBV9wC3ikiCV6IzxhjjM+UliEkissiZfrb4ClVd4bmQjDHG1ARlJghVfRF40YuxGGOMqUHKu0j9sIg0Lmf9AGfcaWOMMXVQeaeYVgMfiUgurr6XMnF10tcWSAC+Av7t8QiNMcb4RHmnmD7A1WNrW1xdbDQHDgNTgZGqmuOdEI0xxvjCKYccVdXNwGYvxGKMMaYGsRHljDHGuOXxBCEigSKyXEQ+cuYHiMgyEVkjIlNEpLwOAxuIyC4RecnTcRpjjDmZN44gRgHrAUQkAJgCDFPVTsB2YEQ5df8FLPR4hMYYY0o5ZYIQkTgRmSMimSKSISKzRSSuIht3yg0CJjuLooA8Vd3kzH8JXFNG3UQgBviiIvsyxhhTvURVyy8g8iUwHXjHWTQcV99Ml5xy4yLvAeOBSOABYDCwDbhGVdNE5HlggKp2LlEvAJjv7OtiIElV/+pm+yOBkQAxMTGJM2fOPFVIZcrOziYiIqLS9Wsjf2uzv7UXrM3+oipt7t+/f7qqJrlbd8q7mICmqvpmsfm3ROTeU1VyHqLLUNV0EUkGUFUVkWHAcyISiuvooNBN9buAT1R1l4iUuQ9VnQRMAkhKStLk5OQKNMe9lJQUqlK/NvK3Nvtbe8Ha7C881eaKJIgDIjIcmOHM3wAcqEC9vsAQEbkc1wN2DURkqqoOB/oBiMhAoJ2bur2BfiJyFxABhIhItqqOqcB+jTHGVIOKXKT+E66hRvcBe4HfA7ecqpKqjlXVOFWNB4YB81V1uIg0A3COIB4CXnVT90ZVbeXUfQB425KDMcZ4V0UelNsODKnGfY52Tj8FAK+o6nwAEUkC7lDVW6txX8aYapI6byItl02gmWaSIU3Z2W003Yfc7uuwjAeV9wzCg6r6lIi8CJS6kq2q91R0J6qaAqQ406OB0W7KpAGlkoOqvgW8VdF9GWOqX+q8iXRKf5hwyQOBWDJpmP4wqWBJog4r7whivfMzzRuBGGNqDi0qYt/OLezduJRjO1eQsGOKKzkUEy55nLNsHGkBQqO4DsSe2YmIBmV2AG1qofI66/vQmTyqqv8rvk5ErvVoVMYYryksKGDnllXs35zKDwXnsHh/GGfv+YBH9b80BwpVCCh9EgGASD1KUtpoSIMiFc4Pnk5cs8YMDkrlrJBfCGt+DlGtOhDbuj3BIaHebZipsorcxTQW+F8Flhljarjc/EI2/ZzF1h83EbvqZRr9uoGW+VuJl2PEA7MK7iIrZhD1213IkoDGNDwzkVYdkjj8dCKxZJba3s8STc51Mzm0cx1ZmTvpFdqCnzKzidrzGb34Hra4yuVrIGsC2/Jcq5c4s2l9erGa2EYRxLTpRFRsSyTAuoWricq7BvE74HKghYi8UGxVA6DA04EZY6rm8KED/LpjFYunf0vgz6uJztrItLx+TC74HU35hfmhn7Mz9GxWxVxJ4BldiTq7O/9ul1Dsm/5lJ7a1tttoGh6/BuHI0RB2Jj5I947doWN3AC44sfYTDu3fx76ta8navZ6CjM0cysln96Ecvtuyn6sCHqdjwHYAsjWcvUEt+KlhL9Z1GMWZTevTPuhnWrRqU+qUlV0o967yjiD24Lr+MARIL7Y8C7jPk0EZY35TkQ/F/Xt3sHv9Erb+cozPczqwcfcBPj16A1eK67vcfhqxO6wtXc5qz3+7dOPcMxpQv9ENdAwMrFAM3YfcTio4cewnQ6LZmVj+h3Oj6FgaRcdC94tOLPsdUFSk/LzzLFZtW0vO3g1wYAvhWVv59ddDvDB/M6qwLHQkEZJNJo3JCGlJdkQ8R4pC6PXLPOrZhXKvKe8axEpgpYhMV9V8L8ZkjHGUdffQeweOEKUHaZKxmBa5m4nmENHA0cKOrI38N53iovhBHuJwLvS9fBjRsa2IBrpWIZbuQ24H54M41nlVRkCA0Lx1O5q3PvkZ2S7AkPxCtu8/wvZV/2bjvo0E/fITkdnbaHdwAUFa4EoOxYRLHi2XTTgRl6leFbkGES8i44GOuJ6IBkBVz/RYVMYYwPWN3d3dQ722vswGWhEZdJCtDXuyJaYzkfGJnNuxJwsbRTklE0lJSSE6tpX3A6+ksOBAzmneAJqX7uS56B8N3daJ0UyKCosICLTrGNWtIgniTeAfwHNAf1xPUdtvwhgP27phOfGaCW66IztDDhD9942EhQThL9/UMqSp2wvlIrBxfG9yb3ifhLNa+CCyuqsiH/Thqvo1rp5ft6vqOFxdeBtjPCD1p0z+/FYqz779Xhk3l0KGRBMWUpHvd3XHzm6jydGQk5blaAiLGw9hbVErhr62gntmLOfX7CM+irDuqchf2DGn++3NIvJXYDeuDvSMMdWkqLCQlV/PIDz1ZRYc7cTysOu4uf9wlv7SmK5rn3Rz99DoSl8DqK3KulDea8jtHDlWwLZvfuSLhd/xeODfWbTvBrpc/w/qRzbyddi1WkUSxCigHnAPrhHeBlD+KHDGmAo6lnuUVZ+8RrM1kzivaBd7pBl9zuvC3UMGEB4SCHQgdV7kad09VJeVdaG8fmgQfxt4Dn/oGMyqKd3ou+sNMp+Zw9qufyNpyF0EVPBuLXOyinTWl+pMZuP04ioiteeqlzE1UFZuPjOW7qBVyiguK/qWHwPPJK370yQMHMEZwSefRqmuu4f8QfO4M9nY90E21C9APv8/eqx8mA1r3+HXYR/S8+wYX4dX65SbIESkN9ACWKiqGSLSBRiDazyHll6Iz5g6Zf++HWyeN4Fxe3qwMbcJN7a8nhad/kSnfkPtaeJq1L77xRR160/aJ5NJXbGSJyen8btOsfz9wmjiWrb2dXi1RnlPUk8ArgBWAA+JyOe4elsdj2uMCGNMBe3cvJK9n04g4cCn9KCQP8bE0GXIYLrE2TlyTwkIDCRp8O2ce2kheQt/Ytk3H9Bs83gWnXEDnYY9SmTDJr4OscYr7whiEHCequaKSGNgJ9BJVbd5JTJj6oAVO34h/91bSMxKoRlBrIgexBm/e5DhZ3fydWh+IzwkkFEXtyWjwzWsfHcpvfe+w4Hn5rG0070kDr2HwCD/uhvsdJT3zuSqai6Aqv4iIpstORhzalpUxPJFX/LU2gYs/ukgj4WFUxg3grMHP0CPWDsz6yvNWrSh2X3vsmnZNxR+OoYea/7Jig1zOHL9+/Rt29TX4dVI5SWIM0VkXrH5NsXnVbU6R5kzptbLzzvGys/epMmKV+hWtI3Q4Ak8POhihvZ4h4hQ+5ZaU7TrdiGa8D3pn73JR8u38+brS7mkfTSP9Iuk5VkdfR1ejVLeX+2VJeaf8WQgxtRWR49ksWreC7Te+CZJZLItoCWpCY/z2u9uIiQ07NQbMF4nAQEkXv5nzr2kkKbfb2X3/NeI2foai2OvpcP1j9GwiR1RQPmd9X3jzUCMqW0OZucyZdEO3v9hLR8XvciekDZk9PwXnftfR7zdd18rhAUHclfy2WS2/wvLZ+2mx75Z/PrCxyzpcDeJV99HUIlbjv2NHfcac5r2bN3Azo+fIjRzJc8f+yeXdGzJtsSv6HKuXXiurZrGtqLpqKlsWb2I3A8fouf6f/Pdk/MpuPYdks9p5uvwfMbjCUJEAnGNK7FbVa8QkQHA00AIrnEm/qyqBSXqJACv4BqcqBB4XFVneTpWY4orOQ7DT/HXEnJgIwmHFxCNsKLxpXx9bRJntbBH1+qKszv3Rs9NYdlX05m9bD9z3kzl0rYR/F/fSFq37+br8LzOG0cQo4D1QAOnT6cpwEWquklEHsXVbcfrJeocBW5S1c0icgaQLiKfq+ohL8RrjNtxGGK3/ZdcDSat+Q2cecUD9Ijzl35U/YsEBNBt4HDOHVBIxx+2k/f1eFrseI8lTa/inGH/dg2C5CdOmSBE5EMo1ankr7iOCiYevxW2jLpxuJ6neBy4H4gC8lR1k1PkS1zjW5+UIIqtR1X3iEgG0BSwBGG8wt04DAC/SgN63fFfH0RkvC00KJDbLjiTg+3HkfZuPt0z3+fIS5+xqO2dBNRrTOuV/6nzQ5+KalkdCjsFRJ7H9eE8w1l0PXAYV9JooKp/LKfue7ievI4EHgAGA9uAa1Q1zdn2AFXtXM42euA66jhXVYtKrBsJjASIiYlJnDlzZrltKU92djYREf7VSa2/tfl02nvhgisRN+MwFKmwsP/cao7Mc/ztdwyea3NWxlbO2PgGiYWrKNAAguS3j6OjGsIXze+gUfuLytmC51Slzf37909X1SR36ypyiqmPqnYvNv+hiKSqancRWVtWJRG5AshQ1XQRSQZQVRWRYcBzIhIKfIHrGkNZ22gOvAOMKJkcnO1NAiYBJCUlaXJycgWa415KSgpVqV8b+VubK9Le7MO/sP6NO90mB3CNw1Cb3jN/+x2DJ9ucjBaN4OCjrWkih09aU0/y6LVvBrF3/MsD+z01T7W5IgkiQkRaqeoOONGT6/FUVfoY/Dd9gSEicjmuoUobiMhUVR2Oq7M/RGQg0M5dZRFpAHwM/F1VF1eoNcZUwZot22k07VK6Fe1jWb2+dDiaauMwmJNIQACN9LDbUf6a6X7vB+RhFek+8m/AdyKyQERSgG+BB0SkPq5TP26p6lhVjVPVeGAYMF9Vh4tIMwDnCOIh4NWSdUUkBJgDvK2q751mm4w5LUVFyqvf/MjQN9aSEtCTjZfNoNtDn7Am8TH20ZQiFfbRlDWJj9XJ88zm9GSI+4foMiTK7fLarCLjQXwiIm2B9s6ijcUuTP+nEvsc7Zx+CgBeUdX5ACKSBNyhqrcC1wEXAFEicrNT72ZVXVGJ/RlTpozdW9n19kjeP3wNAzt1Z/BVk2lYLxiwcRiMezu7jabh8TvciskOiCTvWG6denq+ore5JgLxTvmuIoKqvl3RnahqCpDiTI8GRrspk4arO3FUdSowtaLbN6Yyln8xlfgfxtBe8/hHnz/Q54puSFkXH4xxuBv6dHvDJHr++infvXQLPe+dRnBg3RjboyK3ub4DnIVrXIjjF5QVqHCCMKYmyTmSxao3/krPA3PZEngWIde/Qd92Cb4Oy9Qi7o4uv585gUdXRnLOuyv5z/UJBAbU/i8bFTmCSAI66qnuhzWmFli/9zDfv/Uwtx6by+LYG+l2y7N16pSA8Z2+w0ZzdfMfeeLT9XQ78i0jbvlLrR8LuyIJYg2uBLnXw7EY4zFaVMSSLft4/avviQ77Hd0vuYxefS/3dVimjrnjwrNotn8JV6/+fyx5aSnd/zqlVieJiiSIaGCdiCwFjh1faONBmNriwM+72PXWLdx49Cd2nPkGjxFhHWcAABxESURBVF7Xi6iIUF+HZeqoq6/5A4sOptJ79xsseeVWetz1eq0db7wiCWKcp4MwxlNWpczmjJT7aa9H+CL6Jl66uV+t/Wc1tUevPz/Dokm59N43ncUTQ+l5+39r5d9dRW5ztXEhTK1z7Fguy9+4l14/z2BbQCuyrvkfkZlHa+U/qal9JCCAXiNfZvEr+XTfN5Mpcy5nxNWDa91dcmX+t4jId87PLBE5XOyVJVLiOXNjapAtGdlc/coSCvasYkn01cQ+sIg25/bwdVjGz0hAAD3vnMQrbV9jXGogz3+92dchnbbyRpQ73/kZ6b1wjKk8LSpi6ZwXGb0imqzgphy7bhbnd27p67CMH5OAAO76w+/ZNnsVa+bP5Ic9BfS56VFfh1Vhpzzedp6DOOUyY3zp1wM/s/yZIfRc/Qh/a/Qtn917ARdZcjA1QECA8OQ1Xbgteg19fnqexdPqUIIAzi0+IyJBuJ6sNqZGWPv9xxx7sRedsn9g8dn3Mvjel4lpYM82mJojMEBIvHsq6fUvoNfmZ1gy6wlfh1Qh5V2DGCsiWUCX4tcfgJ+BeV6L0Jgy5BcWMW/aS3T44kZyJYztV82j1/B/1ur7zk3dFRQcQud73mN5vd70XD+eJbOf83VIp1RmglDV8c71hwmq2sB5RapqlKqO8WKMxpSyfX82v391EQ+vbsrCpsOIun8RbRPO93VYxpQrJDSUjve8z8qw7qxdvpjZ6bt8HVK5KvIcRKnbP0Tka1X1zdBJxr+pkjrvFXTZO+ySvzP+DxeQ3OV6X0dlTIWFhtXjnHs/5Kl3VrDovZWEST6DurXxdVhulXeKKUxEooBoEWksIk2cVzzQwlsBGnPc4UMHSHvu93RfPpbIEOGjkV0Z1KW5r8My5rSFhYXz2ojuDGqRS9cPLmb552UOreNT5R1B3A7cC5wBLCu2/DDwkieDMqakDalf0eCTu0goymRR/B30+OPjBAZVtLd6Y2qeeiFBjL9pALteaMq5P9zHiqBQEi4a5uuwTlLecxDPA8+LyN2q+qIXYzJ+LnXeRKev/Ux+lqZ81uxWeuybDoHKlkHv0rvHJb4O0ZhqEdGgMWf89WO2v3QpHRf+hVWBwXRJvsbXYZ1Q3immAc7kbhG5uuTLS/EZP5M6byKd0h8mlkwCBJqTyfU/P8OSyEuIGLWY9pYcTB3ToFEUze78mJ1BrWi34HZWLfrC1yGdUN5zEBc6Pwe7eV3h4biMn2q5bEKpoRzrSR6XH/mABo3q3pi/xgA0jIqh8e0fMz+kP7d8coSlWw/6OiSg/FNM/3B+3uK9cIy/a6aZ4KY/s2a63/vBGONFTZqdQdI979Bw4mLuenMh71zdjA4JfXwaU5kJQkTuL6+iqj5b/eEYf3dYImhEdqnlGRJNrA/iMcabmkWGMf22Xqx88XpazF3KZt6lbUI/n8VT3immyFO8KkREAkVkuYh85MwPEJFlIrJGRKY4XXe4qzdCRDY7rxEV3Z+pvaZ/s4ogzadQTz6EyNEQdnYb7aOojPGu2IZhdL3paY5Qn6Zzh/Hj6sU+i6W8U0z/rKZ9jALWAw1EJACYAlykqptE5FFgBPB68Qoi0gT4B67xsBVIF5F5qvpLNcVkaphXv/mRJz7dyfqzX2Vwk920WvU8zXQ/GRLNzsTRrkHijfETsa3asvumDzn29iAaz76W7UFzad3B+13gVaQ31zNF5EMRyRSRDBH5QETOrMjGRSQOGARMdhZFAXmqusmZ/xJwd0/XpcCXqnrQSQpfApdVZJ+mdtGiIha9/gA5XzzO4K5n8MgtQ+lx9d3EjttCwD8PETtuiyUH45danNmBvOEfUEQAObP+zE8ZWV6PQVS1/AIii4GXgRnOomHA3ara85QbF3kPGI/rlNQDuO6A2gZco6ppIvI8MEBVO5eo9wAQpqqPOfP/D8hR1adLlBsJjASIiYlJnDlz5qlCKlN2djYRERGVrl8b+brNWlREftobDDz6Id+EJlPYcxQBHhzxzdft9QVrc+2XlbmdSavz2CUtGNszjGb1Sv+PVKXN/fv3T1fVJHfrKvIoaj1VLT7+w1QROeUJYRG5AshQ1XQRSQZQVRWRYcBzIhIKfAEUViAGt1R1EjAJICkpSZOTkyu7KVJSUqhK/drIl20uKiwk9ZVb6Xn0QxZHX0O/O1/zeC+s9jv2D3WxzWeff5gbJi3il2Xv0e+Po2je+pyT1nuqzRX5uvapiIwRkXgRaS0iDwKfHO+bqZx6fYEhIrINmAkMEJGpqrpIVfupag9gIbDJTd3dQPHRXuKcZaYOKCxSlr54Ez33v8+i5sPpeddk66LbmHJ0aN6AWcNackPBHIreGszPu3/yyn4rkiCuw9Uv0wIgBbgT12mmdCCtrEqqOlZV41Q13ik/X1WHi0gzAOcI4iHgVTfVPwcGOp0ENgYGOstMLZdfWMSomct5NyOORa1G0uu2FxEPnlYypq4455yO7L1iGg2LDpM3eRD79+3w+D5P+Z+pqm3KeVXoYnUJo0VkPbAK+FBV5wOISJKITHb2eRD4F5DqvB51lplaLDfnCBMmv8NHq/ZyzqUj6f2nCZYcjDkN5yQNYOflU4gqOkD2pMs5mOHZEyvlPSjXHdipqvuc+Ztw3XG0HRh3Oh/YqpqC6+gDVR0NlLqGoappwK3F5t8A3qjoPkzNlnMkiy0vDOH+3NW0vfRjrr3wLF+HZEyt1KHnpawpeJ3WX9zG3Ff/j4uLvucCzWRfSlN2dqveW8LL+/o2EcgDEJELgCeAt4FfcS4MG1MR2Yd/Yevzv6Nj7nJWdX2Ea/uf8gY4Y0w5OvUdzHdt7uGawk9o7nRsGUsmndIfJnXexGrbT3kJIrDYUcL1wCRVna2q/w84u9oiMHXarwcz2fPCQNodW8vyHhPocfU9vg7JmDrhvG1vUK9Ex5bhkkfLZROqbR/lJohi3WBcBMwvts5GajGndCD7GLNfe4z4/J9Y3fdFkgbd5uuQjKkzmmlmGcurr2PL8j7oZwDfiMh+IAf4FkBEzsZ1msmYMv18OJcbJy9hV9ZAugz+PUk9fdfhmDF1UYY0JZbSSaI6O7Ys8whCVR8H/ga8BZyvvz1yHQDcXU37N3XQ3u0b2fOfAQQc2s5bf+plycEYD9jZbTQ5GnLSsuru2LLcU0WqWqobwWL9KBlTyq4tawiaeiVncZQXrmxJ+zNtkB9jPKH7kNtJBWd4Xs90bGnXEky12b4+nXqzriGIQjKueo/2Xfv6OiRj6rTuQ26HIbef6GqjusdMsQRhqsXm1UuJnn0NhQRw+Pq5nO2DromNMdXLHmM1VbZsxy/cNHs3KwI6kjP8I5/0W2+MqX52BGGqZPXS+Yz86DD1IxvR9tY5xDWu5+uQjDHVxBKEqbRVKbNpu+AOHgm9iJ63v0VMgzBfh2SMqUZ2islUyvIvptJ+wUj2BMVx/m3PWHIwpg6yBGFOW9rHr9H5+7vZGnwW0X/5gibNWvg6JGOMB1iCMKdl9uKNtFz6GJtCz6XFPZ/TsElTX4dkjPEQSxCmwt5etI2/zd3C082fpc2oT4lo0NjXIRljPMguUpsKWfzOIxzd+BMXtx/FY8O7ERpkQ4QaU9dZgjDl0qIiFr/1EL13TCK4cX/+fGMCwZYcjPELliBMmbSoiCWT/krvfdNIbfQ7uv11KoFB9idjjL+w/3bjVlGRsviV2+mT+S5Loq+m+52TCQi0Iwdj/IklCHNC6ryJTs+Qmewlmg2FiUjL4fS67UUkwO5nMMbfePy/XkQCRWS5iHzkzF8kIstEZIWIfOcMQFSyTrCITBGR1SKyXkTGejpOf5c6byKd0h8m1hnftoXsZ1jgAoKad7bkYIyf8sZ//ihgfbH5V4AbVTUBmA487KbOtUCoqnYGEoHbRSTew3H6tZbLJhBeYnzbepJHy2VP+ygiY4yveTRBiEgcMAiYXGyxAg2c6YbAHjdVFajvjIkdDuQBhz0Yqt/zxvi2xpjaRX4bSdQDGxd5DxgPRAIPqOoVItIPmItrnOvDQC9VPVyiXjDwDnARUA+4T1Unudn+SGAkQExMTOLMmTMrHWt2djYRERGVrl8bZWdnU69+fY6ueJdBh6YjUrrMHqLZlPy694PzAH/9HVub676qtLl///7pqprkbp3HLlKLyBVAhqqmi0hysVX3AZer6hIRGQ08C9xaonoPoBA4A2gMfCsiX6nqT8ULOUljEkBSUpImJydTWcdHZPInH32xgLe31ee8A7lsCO1AfMGPJ51mytEQdic+WGfeF3/8HVub/YOn2uzJU0x9gSEisg2YCQwQkY+Brqq6xCkzC+jjpu4fgM9UNV9VM4DvAbcZzlTOhrSvmftDOj9sOUDUoEdo//cfWJP4GPtoSpEK+2jKmsTHqnV8W2NM7eKxIwhVHQuMBXCOIB4AhgL7RKSdqm4CLuHkC9jH7QAGAO+ISH2gF/AfT8XqT7SoiCUz/023jc8yStow6o6v6dyyEfDb+LYAsc7LGOO/vPochKoWiMhtwGwRKQJ+Af4EICJDgCRVfQR4GXhTRNYCArypqqu8GWtdlPXrQTa/NoJe2QtZXr8PGZ3v4lInORhjTEleSRCqmgKkONNzgDluyswD5jnT2bhudTXVZOOWH6k37Qq6FO1j8dmj6HnjOL5ZuNDXYRljajB7AsoPvJu6kyFvbWSpdGLT72bQ64+P2sNvxphTsq426rCcI1kse/1uXth7IUlndeDCYVOJjgj1dVjGmFrCEkQdtWPTCgpnjqB34XYe6diBi268mcAANw86GGNMGSxB1EHpn7xO+yX/R54Es6b/6wxMvsbXIRljaiFLEHXIsYJCPnznP/x++6NsCO5AoxFT6dKyVF+IxhhTIZYg6ohdB4/wl+nL2bQrnsZn3ckFI/5JcIhdbzDGVJ4liDpg5fxZFCx8jr06lueG9+GiTnZKyRhTdZYgarGC/DxS33yA3num8GPgmcz+Y0daxjf3dVjGmDrCEkQttX/vDn5+80Z6561iaZPBdLn1VcLq+VcPlsYYz7IEUQst+vEA+VNvJqloI6nnjafH0Lt8HZIxpg6yBFGLFBUW8tqCdTz59Q56Nrmdfw86i+4drZNbY4xnWIKoJQ7t38f21/9Im+xCBnV+mvHXdCEi1H59xhjPsU+YWmBj2nwafjSSDnqQ3E4P8sK1CdaXkjHG4yxB1GBaVMSSWU/QbcPTHAhowvYr59DzvAt9HZYxxk/Y19AaKis3nwenLuSsDa+yvl536v/1B9pacjDGeJEdQdQAqfMm0nLZBJppJhnSlC1tbuQfGRew7ZdjJFwwjRsu6UNAYKCvwzTG+Bm/TxDHP5wv0Ez2pTRlZ7fRXh2HOXXeRDqlP0y45IFALJnE/PQf/sYSom6dRs8zo7wWizHGFOfXCcLdh3PD9IdJhSolCS0qIj8/n2NFQl6hkpf9CwXZ+ynIy6HgWA4FeTkU5uWSEdWd9suecu2/GBFIZBMxlhyMMT7k1wmi5bIJpT6cwyWP9un/YNGelSyK/j2ZAdG0PJRGr4NzkaJ8AouOEViUR1BRHv+u9xA7NYrLcj/jT/kzCCGfYM0nlHxCRDk/92UyaMy9Qe9xb9D7pfbfKXcyq0L3u0bdLqGpHvRUs40xpkL8OkE000y3H84R5NB173u8tO9cNgefw0DZQ1TBjxRICPkSQmFAMMeCIolpEEZEvQY0yD2Ln7L7oYGhaGAoBIWhQSHc1aozAeENaXYkhLSjPQgIDiMgOIzAkDACQ8KZ1jyRn9+Mpjn7S8WQIdHEeuE9MMaYsng8QYhIIJAG7FbVK0TkImACrjuosoGbVXWLm3pdgIlAA6AI6K6qudUZW4Y0JZbMUst/lmhix/3ItBNLLgYeLlXuqRNT3YDbSq3vfWIqHrjEbQyp3R6k0fHTXI4cDWFn4mhLEMYYn/LGba6jgPXF5l8BblTVBGA6bj55RSQImArcoarnAslAfnUHtrPbaHI05KRlORrCzm4PVveuytR9yO2sSXyMfTSlSIV9NGVN4mNevVBujDHuePQIQkTigEHA48D9zmLFdVQA0BDY46bqQGCVqq4EUNUDnoiv+5DbSQXnFtP9ZEg0OxO9exfT8Thw9hnrvIwxxtdEVT23cZH3gPFAJPCAc4qpHzAXyAEOA71U9XCJevcCiUAzoCkwU1WfogQRGQmMBIiJiUmcOXNmpWPNzs4mIsK/usv2tzb7W3vB2uwvqtLm/v37p6uq+14/VdUjL+AK4L/OdDLwkTP9PtDTmR4NTHZT9wFgKxAN1AMWAReVt7/ExEStigULFlSpfm3kb232t/aqWpv9RVXaDKRpGZ+rnjzF1BcYIiKXA2FAAxH5GGivqkucMrOAz9zU3QUsVNX9ACLyCa4rwV97MF5jjDHFeOwitaqOVdU4VY0HhgHzgSuBhiLSzil2CSdfwD7uc6CziNRzLlhfCKzzVKzGGGNK8+pzEKpaICK3AbNFpAj4BfgTgIgMAZJU9RFV/UVEngVScV3U/kRVP/ZmrMYY4++8kiBUNQVIcabnAHPclJkHzCs2PxXXra7GGGN8wLr7NsYY45YlCGOMMW5ZgjDGGOOWJQhjjDFuWYIwxhjjliUIY4wxblmCMMYY45YlCGOMMW5ZgjDGGOOWR7v79iYRyQS2V2ET0eBm7M+6zd/a7G/tBWuzv6hKm1uralN3K+pMgqgqEUnTsvpEr6P8rc3+1l6wNvsLT7XZTjEZY4xxyxKEMcYYtyxB/GaSrwPwAX9rs7+1F6zN/sIjbbZrEMYYY9yyIwhjjDFuWYIwxhjjVp1PECLyhohkiMiaMtYni8ivIrLCeT1SbN1lIrJRRLaIyBjvRV15lW2viLQUkQUisk5E1orIKO9GXnlV+R076wNFZLmIfOSdiKuuin/XjUTkPRHZICLrRaS39yKvvCq2+T7n73qNiMwQkTDvRV55p2qzUybZae9aEfmm2PKqf36pap1+ARcA3YA1ZaxPBj5yszwQ+BE4EwgBVgIdfd0eD7a3OdDNmY4ENtWG9lalzcXW3w9ML69MTXtVpc3AFOBWZzoEaOTr9niyzUALYCsQ7sy/C9zs6/ZUU5sbAeuAVs58M+dntXx+1fkjCFVdCBysRNUewBZV/UlV84CZwJXVGpwHVLa9qrpXVZc501nAelz/WDVeFX7HiEgcMAiYXK1BeVhl2ywiDXF96LzubCdPVQ9Vc3geUZXfMxAEhItIEFAP2FNtgXlQBdr8B+B9Vd3hlM9wllfL51edTxAV1FtEVorIpyJyrrOsBbCzWJld1JIPzApw194TRCQeOA9Y4u3APKisNv8HeBAo8lFcnuSuzW2ATOBN57TaZBGp78MYq1upNqvqbuBpYAewF/hVVb/wZZDVqB3QWERSRCRdRG5yllfL55clCFiGqy+SrsCLwFwfx+Np5bZXRCKA2cC9qnrYB/F5gts2i8gVQIaqpvsyOA8p6/cchOuUxSuqeh5wBKgV19cqoKzfc2Nc357bAGcA9UVkuM+irF5BQCKuo+BLgf8nIu2qa+N+nyBU9bCqZjvTnwDBIhIN7AZaFisa5yyr1cppLyISjCs5TFPV930YZrUqp819gSEisg3XIfgAEZnqu0irTzlt3gXsUtXjR4fv4UoYtV45bb4Y2KqqmaqaD7wP9PFhqNVpF/C5qh5R1f3AQqAr1fT55fcJQkRiRUSc6R643pMDQCrQVkTaiEgIMAyY57tIq0dZ7XWWvQ6sV9VnfRljdSurzao6VlXjVDUe1+93vqrWiW+W5bR5H7BTRM5xil6E6yJnrVfO//IOoJeI1HPWX4TrGltd8AFwvogEiUg9oCeutlXL51dQtYZaA4nIDFx3N0SLyC7gH0AwgKq+CvweuFNECoAcYJi6bgMoEJG/Ap/juiPgDVVd64MmnJbKtldEzgf+CKwWkRXO5v7P+SZWo1Xhd1xrVbHNdwPTnA+On4BbvBx+pVShzUtE5D1cp6AKgOXUku44TtVmVV0vIp8Bq3BdR5usqmuculX+/LKuNowxxrjl96eYjDHGuGcJwhhjjFuWIIwxxrhlCcIYY4xbliCMMca4ZQnC1Bgi8pyI3Fts/nMRmVxs/hkRub+a95ldndtztpkgIpcXmx8nIg9UoJ6IyHwRaXAa+xpS6Z46q0BEOovIW97er/EuSxCmJvke5wlXEQkAooHi/Sb1AX7wQVynKwG4/JSlSrscWHk6XZyo6jxVfaIiZZ0EVC3/86q6GogTkVbVsT1TM1mCMDXJD8DxsQnOBdYAWSLSWERCgQ7AMhGJEJGvRWSZiKwWkSsBROQJEfnL8Y0V/+YuIqNFJFVEVonIP93t3F0ZEYkX15gJr4mrv/0vRCTcWdfdKbtCRCaIa6yBEOBR4Hpn+fXO5juKq0O1n0TknjLafyOuJ2OP73eDiLwlIptEZJqIXCwi34vIZudJYUTkZhF5yZmOEZE54uqsbqWI9HG2s1FE3nbez5YicoPzvq0RkSeLtT9bRB536i4WkRhn+bVO2ZUisrBYvB/iekLX1FWe7MvcXvY63ReufvtbAbcDdwD/wvXNui/wrVMmCGjgTEcDWwDB1QPtN8W2tQ5XfzQDcT05K7i+FH0EXOCUyXZ+ui0DxON6+jbBKfcuMNyZXgP0dqafwOmzH7gZeKlYHONwJb9QJ94DQLCbtm8HIp3p4/vt7MSTDrzhxHclMLfkvoBZuDpZBNfTsw2d7RQBvZzlZ+DqeqKp8z7OB4Y66xQY7Ew/BTzsTK8GWjjTjYrF2xf40Nd/M/by3MuOIExN8wOuU0l9gEXO6/j8904ZAf4tIquAr3B1YxyjqsuBZiJyhoh0BX5R1Z24PvwH4upiYRnQHmhbYr/lldmqqse7H0kH4kWkEa4P80XO8umnaNfHqnpMXR2qZQAxbso0UddYHMdtVdXVqloErAW+VlXF9YEd76b+AOAVAFUtVNVfneXbVXWxM90dSFFXx3UFwDRciRAgD1diPNFOZ/p74C0RuQ1X4jkuA1fCMXVUne+LydQ6x69DdMb1DX0n8DfgMPCmU+ZGXN+AE1U1X1y9sR4fQvJ/uPrkicX1jRpcCWW8qk4sZ79uy4hrbIxjxRYVAuGVaFfJbbj73ysQkQAnIZSsU1RsvqiM+mU5UsFy+U4COilGVb1DRHri6lI6XUQSVfUArvc85zTiMLWMHUGYmuYH4ArgoPMt+CCuYRV789sF6oa4xnHIF5H+QOti9WfhOi/+e1zJAlwdlv1JXGNdICItRKRZif1WpMwJ6hqFLcv54ISTz8Vn4Rq29XRtxDVEZGV9DdwJJ8bZbuimzFLgQhGJFpFA4AbgGzflThCRs1R1iao+gmuwoePdSLfDlcRNHWUJwtQ0q3Gdp19cYtmvzukZcJ0WSRKR1cBNwIbjBdXVY2UksFtV9zrLvsB1CmiRU+c9SnyAV6SMG38GXhNX77f1geOndBbguihd/CJ1RXyMq+fOyhoF9HfiTwc6lizgvCdjnBhXAumq+sEptjvh+EVtXEl6pbO8vxOzqaOsN1djKklEItQZoMZ5FqG5qo6qwvaaA2+r6iXVFaOnOHeVfQOc71zLMHWQXYMwpvIGichYXP9H23HdUVRpqrrXuZ22gdb84V5bAWMsOdRtdgRhjDHGLbsGYYwxxi1LEMYYY9yyBGGMMcYtSxDGGGPcsgRhjDHGrf8PRCZgoCIVEzEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(1/frequencies,top_profile*100,'-o' ,label = 'Top Arm')\n",
    "plt.plot(1/frequencies,bottom_profile*100,'--o',label = 'Bottom Arm')\n",
    "plt.legend()\n",
    "plt.grid(True)\n",
    "plt.xlabel('Wavelength (microns)')\n",
    "plt.ylabel('Splitting Ratio (%)')\n",
    "plt.ylim(48.5,50)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And of course we'll visualize the final topology. We'll plot the minimum length scale as a circle in the upper corner."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "opt.update_design([mapping(x,eta_i,cur_beta)])\n",
    "plt.figure()\n",
    "ax = plt.gca()\n",
    "opt.plot2D(False,ax=ax,plot_sources_flag=False,plot_monitors_flag=False,plot_boundaries_flag=False)\n",
    "circ = Circle((2,2),minimum_length/2)\n",
    "ax.add_patch(circ)\n",
    "ax.axis('off')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
